方法1:簡單函數(shù)實現(xiàn)
def fibonacci_01(n):
a, b, i = 0, 1, 1
while i <= n:
a, b = b, a+b
print(a, end=' ')
i += 1
方法2:通過遞歸函數(shù)
def fibonacci_03(n):
if n<=2:
return 1
return fibonacci_03(n-2)+fibonacci_03(n-1)
方法3:通過迭代器
class Fibonacci:
def __init__(self):
self.a = 0
self.b = 1
def __iter__(self):
return self
def __next__(self):
self.a, self.b = self.b, self.a+self.b
return self.a
f1=Fibonacci()
for f in f1:
if f<1000:
print(f)
else:
break
方法4:通過生成器
def fibonacci_02(n):
a, b, i = 0, 1, 1
while i <= n:
a, b = b, a+b
yield a
i += 1
其他:
跳臺階:一只青蛙,一次可以跳上1階,也可以跳上2階,問跳上n階有多少種跳法。
兔子數(shù)量:剛開始有1只兔子,第三個月的時候兔子會繁殖一個小兔子,假如兔子不死,第N個月有多少只兔子
其實也是斐波那契的實現(xiàn)