首页 > 解决方案 > 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] 你能帮帮我吗?!

标签: pythonpython-3.x

解决方案


你从

list1 = [1, 1]

您永远不会更改该值,然后将其返回给调用例程。

的每次调用都有一个名为;fibolist的局部变量。list1附加到一个不会更改调用list1程序中的值。你需要明确地这样做。尝试

else:
    return fibolist(n-1) + [sum(fibolist(n-1)[n-3:])]

推荐阅读