方法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。輸出格式 輸出一行,...