斐波那契數 python

2021-10-13 07:52:07 字數 1613 閱讀 9218

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 running time: 0.2029705047607422 secs.

1346269

@cal_time

deff1

(n):

l =[1

,1]for i in

range(2

,n+1):

-1]+l[-2

])return l[n]

print

(f1(5)

)

f1 running time: 0.0 secs.

8

@cal_time

deff2

(n):

a, b, c =1,

1,1for i in

range(2

,n+1):

c = a + b

a = b

b = c

return

(c)print

(f2(5)

)

f2 running time: 0.0 secs.

8

#確定執行時間

import time

defcal_time

(func)

:def

(*args,

**kwargs)

: t1 = time.time(

) result = func(

*args,

**kwargs)

t2 = time.time(

)print

("%s running time: %s secs."

%(func.__name__, t2 - t1)

)return result

一段有n個台階組成的樓梯,小明從樓梯的最底層向最高處前進,它可以選擇一次邁一級台階或者一次邁兩級台階.問:他有多少種不同的走法?

#從1 開始的斐波那契數列,1,2,3,5,8,13...

deftaijie

(n):

a =1 b =

2 c =

0for i in

range(3

,n+1):

#從1開始

c = a + b

a = b

b = c

return c

print

(taijie(5)

)

斐波那契數

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

斐波那契數

斐波那契數列 fibonacci sequence 簡介 斐波那契數列 fibonacci sequence 又稱 分割 數列 因 數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 ...

斐波那契數

遞迴演算法是不可取的。由於效率非常低,並且還有棧溢位的風險。應該使用例如以下的迭代解法 int fibonacci unsigned int n if n 1 int i 0,j 1,m unsigned int k for k 2 k n k return m 可是對於這題來說。上面的 還是不行的...