python - Python中递归函数的斐波那契数列
问题描述
您好我正在尝试通过在 python 中使用递归函数来生成斐波那契数列。
这是我的代码
def fibolist(n):
list1 = [1, 1]
if n in (1,2) :
return list1
else:
fibolist(n-1).append(sum(fibolist(n-1)[n-3:]))
return list1
但是当我输入任何数字作为参数时,结果是[1, 1]
你能帮帮我吗?!
解决方案
你从
list1 = [1, 1]
您永远不会更改该值,然后将其返回给调用例程。
的每次调用都有一个名为;fibolist
的局部变量。list1
附加到一个不会更改调用list1
程序中的值。你需要明确地这样做。尝试
else:
return fibolist(n-1) + [sum(fibolist(n-1)[n-3:])]
推荐阅读
- python-3.x - 月份格式化为名称时对日期时间列进行排序
- javascript - 如何获取名称中有多个空格的 json 属性?
- postgresql - Mac 上的 PostgreSQL 无法识别用户密码
- c++ - 如何有效地将大 std::string 的一部分转换为浮点数?
- python - BeautifulSoup - 处理类似网站结构的表格|返回字典
- java - 当有未知数量的空格时,替代正向后视
- fortran - 如何在 Fortran 中使用(初始化、操作、获取输出)mkl 句柄?
- android - 加载 Admob 时 Fragment 未附加到 FragmentManager
- xamarin - Xamarin:无法在 Android/iOS 中提取照片的中心正方形
- php - PHP 7.2 - 包含文件无法访问另一个包含文件