#方法一
def Fbnq(n):
if n ==0 or n == 1:return 1
return Fbnq(n-1) +Fbnq(n-2)
print(Fbnq(3))
#方法二
def Fbnq2(n):#给斐波那契数列的前两个元素赋初值
#同时利用index记录循环进行的下标位置
index,a,b = 0,1,1
while index < n-2:
a,b = b,a+b #这里b的值等于f(n)
index +=1
return b
for i in range(1,11):
print(fbnq2(i))
#方法三(协程)
def bnq3(n):
a,b=0,1
i=0
while i<n:
yield b?
a,b=b,a+b
i+=1
for x in fbnq3(20):
print(x)