斐波拉契數列:1,1,2,3,5,8,13,21,34,55,89,144。。。
以下程式預設數列從1開始,不考慮引數為0情況。若儲存以前值可以用列表儲存
常規寫法
def
fib(num)
: i =
2 n,m =1,
1while ii+=
1 n,m = m,m+n
return m
遞迴寫法 此方法看看就好,bie yong
def
fib(num)
:if num<2:
return
1else
:return fib(num-1)
+fib(num-
2)
裝飾器寫法 速度要快於常規寫法(快很多倍)
def
memo
(func)
: cache =
defwrap
(*args)
:if args not
in cache:
cache[args]
= func(
*args)
return cache[args]
return wrap
@ memo
deffib
(i):
if i <2:
return
1return fib(i-1)
+ fib(i-
2)
斐波拉契數列 演算法
斐波那契數列是一組第一位f1和第二位f2為1,從第三位開始,後一位是前兩位和的一組遞增數列fn fn 1 fn 2。那麼當n比較大時,fn也非常大,現在我們想知道,第n項,fn等於多少 如 輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn。樣例輸入10此時fibonacc 樣...
斐波拉契數列
斐波拉契數列 1 1 2 3 5 8 13 21 34.其中每乙個數字都是前兩個數字的和。遞迴計算 long fibonacci int n 非遞迴計算 long fibonacci int n return result 這個函式的遞迴實現使用了雙重遞迴 double recursion 函式對本...
斐波拉契數列
編寫彙編程序列印1 1000的斐波拉契數列 原始碼assume cs code,ss stack,ds data data segment fibo dw 0,1,64 dup 0 str db the fibo list is 0ah,0dh,data ends stack segment db ...