1. 背景——Fabonacci數列的介紹(摘自百度百科):
斐波那契數列(Fibonacci sequence),又稱黃金分割數列。因數學家列昂納多·斐波那契(Leonardoda Fibonacci )以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、……用公式定義如下:

計算通式為:

當n趨向於無窮大時,前一項與后一項的比值越來越逼近黃金分割0.618
2. 用Python迭代實現求解Fibonacci數列的第n項
def fib_iter(n):
n1 = 1
n2 = 1
n3 = 1
if (n < 1):
print("Wrong input! ")
return -1
else:
while (n-2) > 0:
n3 = n2 + n1
n1 = n2
n2 = n3
n -= 1
return n3
result = fib_iter(35)
if result != -1:
print(result)
優點:當n數值較大時,求解速度較遞歸法快
缺點:代碼不簡潔易懂
3. 用Python遞歸實現求解Fibonacci數列的第n項
def fib_re(n):
result = 0
if(n < 1):
print("Wrong input! ")
return -1
else:
if(n == 1 or n == 2):
return 1
else:
return fib_re(n-1) + fib_re(n-2)
result = fib_re(35)
if result != -1:
print(result)
#分治思想
優點:代碼簡潔易懂
缺點:當n數值較大時,反復的出棧和壓棧操作使得運行時間很長
