斐波那契數列: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...