python - 如何在第 n 个斐波那契数之前打印所有斐波那契数?
问题描述
我想将所有斐波那契数打印到索引为 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 i in range(n):
return fibonacci(n-1) + fibonacci(n-2)
这个 for 循环是没有意义的,因为你return
是第一次迭代。您应该在这里完全摆脱 for 循环。
这也不是您要重复的部分。相反,您想重复该print()
语句:
for i in range(n):
print(fibonacci(i)) # You want the i-th fibonacci number
这将为您提供所需的结果,但这是一种非常低效的方法。对于较大的 值n
,您将计算第 i 个斐波那契数的指数次数。
推荐阅读
- javascript - 未捕获的类型错误:event.target 未定义
- javascript - 在更改 Vue.Js + HTML Range 时重新加载画布
- html - 我创建了一个表格,但它不是水平滚动
- javascript - 从排序数组 JS 中删除重复项
- amazon-dynamodb - DynamoDB docClient 扫描没有响应
- css - 如何仅使用 css 设置挤压框的样式
- prestashop - 如何在 Prestashop 1.7 中跳过付款步骤
- sql-server - 将 SQL Server 函数迁移到 PostgreSQL
- tinymce - TinyMCE 5:插入时总是向块引用元素添加一个类(通过单击工具栏上的“块引用”按钮)
- javascript - 如何禁用图像拖动