【发布时间】:2020-02-12 23:41:13
【问题描述】:
我想将所有斐波那契数列打印到索引为 n 的那一个,但我的代码只打印第 n 个斐波那契数列。请告诉我我做错了什么以及应该如何做?
n = int(input('Enter a number: '))
def fibonacci(n):
if n < 0:
print("Error(enter a positive integer)")
elif n == 1:
return 0
elif n == 2:
return 1
else:
for i in range(n):
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(n))
【问题讨论】:
-
您的
for循环放错了位置。这里的一种解决方案是将print()语句放入for循环中。这是一种非常低效的方法,但它会得到你想要的结果。 -
不要使用可怕的双递归斐波那契定义,它除了不适合按升序打印之外效率极低,而是从头开始并向上计算。
标签: python python-3.x fibonacci