创建一个程序,使这个程序在得到用户输入的值(n)后,自动的输出从1到n的所有值(F1,F2,F3,……,Fn)
利用递归:
#定义一个函数,用于计算第n项的斐波拉契数列值
def Fibonacci(n):
if n==1 or n==2:
return 1
else:
return Fibonacci(n-1) + Fibonacci(n-2)
k=1;Fibon=[]
#利用死循环确保输入数正确
while True:
n=int(input("please input the number:\n"))
if n<=0:
print("Wrong!")
else:
break
#利用迭代从1到n存储所有斐波拉契数列值
for i in range (1,n+1):
Fibon.append(Fibonacci(i))
#输出
print(Fibon)
弊端在于,从F3到F(n-2)都求2遍
利用迭代:
版本1:输入n,输出前n项
#利用迭代存储好所有的项
def fibo(n):
fib=[]
if n==1:
fib=[1]
elif n==2:
fib=[1,1]
else:
fib.append(1)
fib.append(1)
for i in range (2,n):
fib.append(fib[i-1]+fib[i-2])
return fib
#同上
while True:
n=int(input("please input the number:\n"))
if n<=0:
print("Wrong!")
else:
break
b=