一.递归
#递归计算第n项
def febonaqi(n):
if(n<=1): return n
else: return febonaqi(n-1)+febonaqi(n-2)
二.迭代
1.迭代返回列表
def febonaqi(n):
febo = []
for i in range(n):
if i <= 1:
febo.append(i)
else:
febo.append(febo[i-1] + febo[i-2])
return febo
def febonaqi(n):
febo = [0,1]
for i in range(n-2):
febo.append(febo[-1]+febo[-2])
return febo
2.迭代打表
febo = [i for i in range(1000)]
for i in range(1000):
if i <=1:
febo[i] = i
else:
febo[i] = febo[i-1]+febo[i-2]
三.直接计算
1.直接计算第n项
def febonaqi(n):
x,y = 0,1
while (n-1):
x,y,n = y,x+y,n-1
return x
2.直接输出所有项
def febonaqi(n):
x,y, = 0,1,
while(n):
print(x,end=' ')
x,y,n = y,x+y,n-1