斐波那契數列的遞迴 遞推演算法比較

2021-06-13 17:37:12 字數 676 閱讀 6887

公式:f(n+1)=f(n)+f(n-1), f(0)=f(1)=1

網上找到的乙個最簡單例子,修改了兩個bug

// 遞迴演算法

int f1(int n)

if (n < 2)

return 1;

else

return f1(n-1)+f1(n-2);

// 遞推演算法

int f2(int n)

if (n < 2)

return 1;

int f0=1, f1=1, f;

for (int i=0; if=f0+f1;

f0=f1;

f1=f;

return f;

兩個演算法功能相同,簡單總結一下

遞迴:演算法簡單,但是效率較低,因為要入棧、出棧,並且容易造成堆疊溢位。

遞推:演算法較複雜,但是效率比較高。

intel t7250/2.45gb記憶體/xp系統/vc6 debug版本程式/測試迴圈100萬次耗時:f1 4390ms     f2 72ms

release版本耗時:f1 1390ms      f2 21ms

從上面資料也可以看出來release比debug**的確優化不少。

注:考慮到時鐘的誤差,上面f2函式的資料實際上是迴圈1億次的資料除以100得到。

演算法 斐波那契數列 遞迴 遞推

2.解決方案 3.資源分享 題目 斐波那契數列 遞迴 遞推 動態規劃 問題描述 斐波那契數列是非常經典的演算法問題,理解他的數學思想對我們程式猿程式設計有極大的幫助。輸入 每個輸入用例包含乙個正整數n 0 n 30 你的目標是計算f n 輸出 可能有多組輸入資料,對於每組輸入資料,輸出一行,這一行輸...

遞推演算法之斐波那契數列 昆蟲繁殖

問題描述 科學家在熱帶森林中發現了一種特殊的昆蟲,這種昆蟲的繁殖能力很強。每對成蟲過x個月每個月產y對卵,每對卵要過兩個月長成成蟲。假設每個成蟲不死,第乙個月只有一對成蟲,且卵長成成蟲後的第乙個月不產卵 過x個月產卵 問過z個月以後,共有成蟲多少對?0 x 20,1 y 20,x z 50 輸入格式...

斐波那契數列的遞推和遞迴演算法

斐波那契這個人人熟知的數列已經是個說爛的話題了,今天舊話重提,咱也來乙個朝花夕拾,呵呵 面試的時候遇到了這個面試題,最丟人的是,我沒做出來,哈哈 回頭想想,這不就是斐波那契嗎,只是用不同的情況表達了出來,最開始接觸程式的時候,使用兔子表達的,具體的敘述這裡不說了,因為我比較懶,哈哈 面試的時候居然是...