不用遞迴的斐波那契數列

2021-09-27 12:03:34 字數 617 閱讀 5454

斐波那契數列:1,1,2,3,5,8,13,21,34,55……

列乙個表表示一下每個月幼兔、小兔、成兔以及總計的對數的話,如下表:月份1

2345

678……

幼兔101

1235

8……小兔0

1011

235……

成兔001

1235

8……總數1

1235

81321……

通過上表,我們可以得出乙個規律:

1.當前月的幼兔對數=上個月的成兔對+上個月的小兔對數

2.當前月的小兔對數=上個月的幼兔對數

3.當前月的成兔對數=上個月的成兔對數+上個月的小兔對數

定義變數yt,xt,ct分別表示幼兔,小兔,成兔的對數,可以寫迴圈

ct += xt;  xt = yt;  yt=ct;

又因為,初始值為第乙個月的兔子對數情況,所以迴圈變數從1開始

即,**為:

function f(n)

return ct+xt+yt;

}

遞迴與斐波那契數列

迭代實現 def fab n a1 1 a2 1 a3 1if n 1 print 輸入有誤 return 1 while n 2 0 a3 a1 a2 a1 a2 a2 a3 a 1return a3 result fab 20 if result 1 print 總共有 d對小兔子誕生 resu...

遞迴演算法斐波那契數列

有一對兔子,從出生後第3個月起,每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子。假如兔子都不死,求第n個月兔子對數 關於斐波那契數列的兔子繁殖問題其實如下 實際月份 123 4567 8幼仔對數 101 1235 8成兔對數 011 2358 13總體對數 112 35813 21幼仔對...

遞迴實現斐波那契數列

斐波那契數列 f 1 1,f 2 1,f n f n 1 f n 2 n 3,n n package com.algorithm.tiger.recursion 遞迴和非遞迴方法實現斐波那契數列 斐波那契數列 f 1 1,f 2 1,f n f n 1 f n 2 n 3,n n descripti...