斐波那契數,通常用f(n)
表示,形成的序列稱為斐波那契數列。該數列由0
和1
開始,後面的每一項數字都是前面兩項數字的和。也就是:
f(0) = 0, f(1) = 1給定f(n) = f(n - 1) + f(n - 2), 其中 n > 1.
n
,計算f(n)
。
解法一、遞迴
解法二、上面的遞迴演算法,每次都要把所有項算一遍,即計算f(1000)需要講前999個全部計算一遍,計算f(1001又需要再計算一次,這種演算法越到後面越慢。我們可以將已經計算過的結果儲存到乙個陣列中,以空間換取時間
class solution ;
for(int i = 2;i <= n;i++)
return res[n];}};
執行結果:
快速求斐波拉契數列
首先,我們先計算如下的式子 f i f i 2 f i 1 f i 3 2f i 2 2f i 4 3f i 3 這時,我們假設當前為 f i a f j b f j 1 則是不是 f i a b f j 1 a f j 2 等等,係數是不是有點眼熟 1,1,2.a,b,a b 這不正是斐波拉契數列...
斐波拉契數列
斐波拉契數列 1 1 2 3 5 8 13 21 34.其中每乙個數字都是前兩個數字的和。遞迴計算 long fibonacci int n 非遞迴計算 long fibonacci int n return result 這個函式的遞迴實現使用了雙重遞迴 double recursion 函式對本...
斐波拉契數列
編寫彙編程序列印1 1000的斐波拉契數列 原始碼assume cs code,ss stack,ds data data segment fibo dw 0,1,64 dup 0 str db the fibo list is 0ah,0dh,data ends stack segment db ...