python中斐波那契數的實現

2021-07-25 02:38:24 字數 863 閱讀 6432

方法1,

def fib(n):

a = 1

b = 1

for i in range(n-1):#總共運算n-1次,從a=1,b=1開始,沒運算一次,將結果

#帶入下一次a,b=b,a+b中,最終結果就是n這個位置的  a,b=b,a+b

return a

print fib()

例如輸入「

5」,那麼就是得到5,實際是從0開始的

第六位

,0,1,1,2,3,5

可以改變range(n-1)為range(n),就會得到第七位,就是從第三位開始的。

方法2這次是用遞迴函式的方式來運算。

def fib(n):

if n == 1 or n == 2:

return 1

return fib(n-1)+fib(n-2)

print fib()

例如輸入5,那麼fib(5)就呼叫fib(5-1)+fib(5-2),返回fib(4)+fib(3),那麼就繼續計算fib(4)和fib(3),其中的fib(4)就呼叫return,就是fib(4-1)+fib(4-2),以此類推。最終觸發if語句執行就會打斷呼叫迴圈。依次返回值。fib(5)=3+2=5.

例如輸入「5」,那麼就是得到5,實際是從0開始的

第六位

,0,1,1,2,3,5

如果需要某個段的斐波那契數,就等我研究第三個方法回來。。。

這是輸出片段。從0開始的,仔細研究fibs定義的時候[0,1]和range(n-2),可以決定從0開始還是從1開始

斐波那契數 python

def f x if x 0or x 1 return 1else return f x 1 f x 2 cal time 裝飾器 確定執行時間 deffib n return f n print fib 30 給遞迴函式加裝飾器,會出現重複列印 重新定義乙個函式,呼叫,這樣就不會重複列印fib r...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

斐波那契數

入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...