用費布拉契數列實現迭代演算法 兔子問題

2021-09-23 06:10:58 字數 815 閱讀 4082

`上**:`

古典問題:有一對兔子,從出生後第四個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子。假如兔子都不死,計算第十個月兔子的總數?

用**表示這個過程:

所經過的月數12

3456

78910

兔子總對數11

2358

1321

3455

迭代結構圖:

print("輸入有誤!")

return 0

while (n-2) > 0 :

n3 = n2 + n1

n1 = n2

n2 = n3

n -= 1

return n3

print(month(0))

print(month(4))

result = month(9)

if result != -1:

print("總共有%d對兔兔!"%result)

x =int(input("請輸入經過的月份數目:"))

print(month(x))

編譯結果:

輸入有誤!03

總共有34對兔兔!

請輸入經過的月份數目:10

55

兔子問題(斐波那契數列)的迭代實現與遞迴實現

某個月兔子的數量 上個月兔子數 這個月出生的兔子數 這個月出生的兔子數 上上個月的兔子數 根據題意可知此時且這個月的兔子全是上上個個月的兔子生的,因為上上個月的兔子是剛好到這個月所有兔子都成熟的,所以可以理解為這個月的新生兔子是上上個月的兔子數量 寫成遞推公式就是 f n f n 1 f n 2 其...

迭代器實現斐波那契數列

class fibiterator object 斐波那契數列迭代器 def init self,n param n int,指明生成數列的前n個數 self.n n current用來儲存當前生成到數列中的第幾個數了 self.current 0 num1用來儲存前前乙個數,初始值為數列中的第乙個...

演算法之斐波納契數列遞迴和迭代實現

在數學上,斐波納契數列以如下被以遞迴的方法定義 f 0 0,f 1 1,f n f n 1 f n 2 n 2 迭代的實現 s 0 0 s 1 1 for i 2 i 100 i var dump s 遞迴實現 function fib i return fib i 1 fib i 2 var du...