遞迴定義以及斐波那契數列的實現

2021-08-28 14:26:44 字數 615 閱讀 4898

斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞推的方法定義:

其實這個數列就是後乙個數等於前面兩個數的和,利用遞迴實現起來非常簡單。

def calculate(i):

if i==0:

return 0

elif i==1:

return 1

elif i>1:

return calculate(i-2)+calculate(i-1)

for j in range(0,10):

print(calculate(j))

輸出結果:

011

2358

1321

34

在高階語言中,函式呼叫自己和呼叫其他函式並沒有本質不同。我們把乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱為遞迴函式。不過寫遞迴程式最怕的就是陷入永不結束的無窮遞迴中。所以遞迴必須定義乙個終止條件。

遞迴實現斐波那契數列

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

斐波那契數列遞迴實現

什麼是fibnacci數列?斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家萊昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 34 在數學上與 分割的關係 ...

斐波那契數列遞迴實現

1.斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家萊昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 55 89 斐波納契數列在現代物理 準晶體結構 化學...