1. 程式人生 > >用遞歸方法計算斐波那契數列(Recursion Fibonacci Python)

用遞歸方法計算斐波那契數列(Recursion Fibonacci Python)

n-1 html pri style strong ans rdo 黃金分割 nac

先科普一下什麽叫斐波那契數列,以下內容摘自百度百科:

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因意大利數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,指的是這樣一個數列:1、1、2、3、5、8、13、21、34。。。這個數列從第3項開始,每一項都等於前兩項之和。

根據以上定義,用python定義一個函數,用於計算斐波那契數列中第n項的數字是多少:

def fib_recur(n):
if n==0 or n==1 :
return n
else:
return (fib(n-1) + fib(n-2))
#每一項返回的結果都是前兩項之和

調用這個函數試一下:

print(fib(5))

結果是:

5

如果要把到第n項的斐波那契數列都列出來,那麽代碼如下:

num=int(input("請問您需要列出幾項斐波那契數列?"))
if num<=0:
print("請輸入正整數")
else:
print("斐波那契數列:")
for i in range(num+1):
print(fib(i))

運行結果如下:

請問您需要列出幾項斐波那契數列?5

斐波那契數列:
0
1
1
2
3
5

參考:麻省理工學院公開課:計算機科學及編程導論 (第4課)

附:不用遞歸方法計算出斐波那契數列

num=int(input("請問您需要列出幾項斐波那契數列?"))
#先定義第一項和第二項
num1=1
num2=1
while num1<num+1:
print(num1)
num1,num2=num2,num1+num2 #把第二項的值賦予第一項,第三項的值賦予第二項,以此類推

運行結果如下:

請問您需要列出幾項斐波那契數列?5
1
1
2
3
5

用遞歸方法計算斐波那契數列(Recursion Fibonacci Python)