编写2个函数,分别采用递归和递推方法计算斐波那契数列的前n项,函数返回列表,该列表中存放斐波那契数列,并写出程序调用这2个函数,输出斐波那契数列。
#递归方法
def fib1 (n):
if n < 1:
return -1
if (1 == n) or (2 == n):
return 1
return fib1(n-1) + fib1(n-2)
#递推
def fib2(n):
f1 = f2 = 1
for k in range(1, n-1):
f1, f2 = f2, f2 + f1
return f2
def main():
n = int(input("请输入求解前几项: "))
result1 = fib1(n)
result2 = fib2(n)
L1=[]
for i in range(1,n+1):
x1 = fib1(i)
L1.append(x1)
print("递归方法输出为")
print(L1)
L2=[]
for i in range(1,n+1):
x2 = fib2(i)
L2.append(x2)
print("递推方法输出为")
print(L2)
if __name__=='__main__':
main()