1.递归(不推荐)
while True:
def feb1(n):
if n < 1:
print("输入错误!")
elif n == 1 or n ==2:
return 1
else:
return feb1(n-1) + feb1(n-2)
a = int(input("请输入要计算的斐波那契项数:"))
result = feb1(a)
print("第%d项斐波那契数为%d" % (a,result))
结果:
2.非递归
while True:
def fib2(n):
a, b = 1, 1
list = []
for i in range(n):
list.append(a)
a, b = b, a+b
print(list)
a = int(input("请输入要计算的斐波那契的项数:"))
fib2(a)
求满足规律的100以内的斐波那契数列
def fib3(n):
a = 0
b = 1
while b < n:
print(b,end=" ")
a,b = b,a+b
fib3(100)
结果: