用递归方法计算斐波那契数列(Recursion Fibonacci Sequence Python)
先科普一下什么叫斐波那契數(shù)列,以下內(nèi)容摘自百度百科:
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因意大利數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34。。。這個(gè)數(shù)列從第3項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。
?
根據(jù)以上定義,用python定義一個(gè)函數(shù),用于計(jì)算斐波那契數(shù)列中第n項(xiàng)的數(shù)字是多少:
def fib_recur(n):if n==0:return ""elif n==1 or n==2:return 1else:return (fib_recur(n-1) + fib_recur(n-2)) #每一項(xiàng)返回的結(jié)果都是前兩項(xiàng)之和?
調(diào)用這個(gè)函數(shù)試一下:
print(fib_recur(5))結(jié)果是:
5?
如果要把到第n項(xiàng)的斐波那契數(shù)列都列出來(lái),那么代碼如下:
num=int(input("請(qǐng)問(wèn)您需要列出幾項(xiàng)斐波那契數(shù)列?")) if num<=0:print("請(qǐng)輸入正整數(shù)") else:print("斐波那契數(shù)列:",end="")for i in range(num+1):print(fib_recur(i))?
運(yùn)行結(jié)果如下:
請(qǐng)問(wèn)您需要列出幾項(xiàng)斐波那契數(shù)列?5
斐波那契數(shù)列:
1
1
2
3
5
?
參考:麻省理工學(xué)院公開課:計(jì)算機(jī)科學(xué)及編程導(dǎo)論?(第4課)
?
附:不用遞歸方法計(jì)算出斐波那契數(shù)列
num=int(input("請(qǐng)問(wèn)您需要列出幾項(xiàng)斐波那契數(shù)列?")) #先定義第一項(xiàng)和第二項(xiàng) num1=1 num2=1 for i in range(num):print(num1)num1,num2=num2,num1+num2 #把第二項(xiàng)的值賦予第一項(xiàng),第三項(xiàng)的值賦予第二項(xiàng),以此類推?
運(yùn)行結(jié)果如下:
請(qǐng)問(wèn)您需要列出幾項(xiàng)斐波那契數(shù)列?5
1
1
2
3
5
?
轉(zhuǎn)載于:https://www.cnblogs.com/HuZihu/p/7595185.html
總結(jié)
以上是生活随笔為你收集整理的用递归方法计算斐波那契数列(Recursion Fibonacci Sequence Python)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Direct3D播放RGB(通过Text
- 下一篇: websocket python爬虫_p