斐波那契數列的python版本:
# -*-coding:utf-8-*-
'''斐波那契數列實現
'''import functools
from typing import generator
# 方法一:使用遞迴(需要快取)
@functools.lru_cache(maxsize=none)
def feibo(num:int) ->int:
if num < 2:
return num
return feibo(num-1) + feibo(num-2)
def feibo2(num:int)->int:
first = 0
sencond = 1
for i in range(1,num):
first,sencond = sencond,first+sencond
return sencond
# 方法三:使用生成器
def feibo3(num:int)->generator[int,none,none]:
yield 0 # 遍歷第乙個值返回
if num > 0:
yield 1 # 遍歷第二個值返回
first = 0
next = 1
for i in range(1,num):
first,next = next,first+next
yield next
if __name__ == '__main__':
print(feibo(50))
print(feibo2(50))
for i in feibo3(10):
print(i)
斐波那契數列衍生演算法題
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。首先我們最快想到的實現方式就是遞迴 f 1 1 f 2 2 f n f n 1 f n 2 複製 func climbstairs n int int i...
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 斐波那契數列應用
什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...