斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為"兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……。這個數列從第3項開始,每一項都等於前兩項之和。
下面分享兩個方法證明小兔紙的繁殖能力有多強(小兔紙的繁殖週期與斐波那契數列一致):
方法一:迭代實現
def fibonacci(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1: # 輸入錯誤的情況,返回0
print("輸入錯啦!")
return 0
while (n-2)>0:
n3 = n2 + n1
n1 = n2
n2 = n3
n -= 1
return n3:
num = int(input("請輸入月份n:"))
result = fibonacci(num)
if result: # 當返回值為非0,result為true
print("總共有 %d 對小兔兔誕生!!!" % result)
方法二:遞迴實現
def fab(n):
if n < 1:
print("輸入有誤!")
return 0
if n == 1 or n == 2:
return 1
else:
return fab(n-1) + fab(n-2)
num = int(input("請輸入月份n:"))
result = fab(num)
if result:
print("總共有%d對小兔紙!!!" % result)
方法三:利用元組進行交換
def fib(n):
a,b = 1,1
for i in range(n-1): # 當n = 0時,不執行for迴圈中的內容
a, b = b, a+b
return a
num = int(input("輸入月份:"))
print("第 %d 個月有 %d 對兔子" % (num, fib(num)))
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
Python練習(一)斐波那契數列
最近研究python基礎,再次對斐波那契數列進行再度擴充套件研究。之前的實現只針對c 二,斐波那契數列剖析 斐波那契數列邏輯很簡單如圖所示 問題的關鍵在於當輸入的元素下標大於1時如何呈現。0和1 利用列舉就可以直接輸出。大於1的情況我們有如下幾種方式。三,遞迴演算法 遞迴演算法,不停地迭代呼叫直至返...
python 斐波那契數列
用python寫斐波那契數列當然大家都寫的出來。當時如果用一行 寫呢。本來沒有打算用一行 寫的。後來看到有用一行 寫階乘的。reduce lambda x,y x y,i for i in range 1,n 1 當然在這之前需要 from functools import 好吧,如果你願意,就算兩...