#計算斐波那契數列方法
一。遞歸法一,一次調用兩個遞歸,效率極低。
def func(n):
if n<3:return 1
else:
return func(n-1)+func(n-2)
print(func(2))
二。遞歸法二,調用一個遞歸,效率較高。
def func(n,a=1,b=1):
if n<3:return b
else:
return func(n-1,b,a+b)
ret=func(100)
print(ret)
三。使用循環,效率高。
def func(n):
a,b=1,1
while n>2:
a,b=b,a+b
n-=1
return b
print(func(100))
四。使用生成器,輸出所有的數組。
def func(n):
if n==1:
yield 1
else:
yield from(1,1)
a,b=1,1
while n>2:
a,b=b,a+b
yield b
n-=1
for i in func(100):
print(i)