用遞歸方法計算斐波那契數列(Recursion Fibonacci Python)
阿新 • • 發佈:2017-09-26
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)