Python小練習 斐波那契數列

2021-08-03 05:41:21 字數 1234 閱讀 3134

斐波那契數列(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 好吧,如果你願意,就算兩...