裴波那契數列及其遞迴演算法

2021-08-28 02:28:22 字數 496 閱讀 3834

裴波那契數列起源於兔子數列,假設第乙個月有一對剛出生的兔子,第二個月兔子進入成熟期,我三個月開始生育小兔子,而一對成熟的兔子會在每月生育一對小兔子,兔子永遠不會死去。。。n月後會有多少只兔子

每月的兔子數為:

1,1,2,3,5,8,13,21,34......

該數列成為裴波那契數列。

最簡單的遞迴為

f(int n)else if (n==1 || n==2)else{

return f(n-1)+f(n-2)

因為遞迴可控性較差,可對其進行優化

f(n){

int i,s1,s2;

s1=1;

s2=2;

if(n<1)

return -1;

for(i=3;is2=s1+s2;  //獲取前兩項的和

s1=s2-s1;   //記錄上乙個數值

return s2;

優化後的演算法時間複雜度為 o(n), 空間複雜度為o(1)

裴波那契數列

裴波那契 fibonacci leonardo,約1170 1250 是義大利著名數學家 在他的著作 算盤書 中許多有趣的問題,最富成功的問題是著名的 兔子繁殖問題 如果每對兔子每月繁殖一對子兔,而子兔在出生後第二個月就有生殖能力,試問一對兔子一年能繁殖多少對兔子?可以這樣思考 第乙個月後即第二個月...

裴波那契數列

def fib max num n,a,b 0,0,1 while n max num print b 列印出來的就是裴波那契數列,從第三項開始,每一項都等於前兩項之和 a,b b,a b n n 1 return done fib 7 0,0,1 第一次沒迴圈時預設值n 0,a 0,b 1 1,1...

裴波那契數列(迴圈實現遞迴)

裴波那契 fibonacci 數列 f n 0,1 f n 1 f n 2 n 0n 1n 1 求裴波那契數列的第n項。題目來自劍指offer 1.遞迴解法,效率很低的解法,不用 一看到這個題,我們就很容易竊喜的想到這種解法 很多f i 進行了重複計算,隨著n的增大,計算量急劇增加,時間複雜度以n的...