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


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

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

 

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

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

 

調用這個函數試一下:

print(fib_recur(5))

結果是:

5

 

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

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

 

運行結果如下:

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

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

 

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

 

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

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

 

運行結果如下:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM