我的padovan系列代码有什么问题?

时间:2019-03-29 08:27:58

标签: algorithm numbers

我正在尝试借助动态编程获得Padovan序列中的第n个数字。谁能告诉我我的代码出了什么问题?

def padovan(n):
    p = [1, 1, 1]
    while len(p) < n+1:
        p.append(0)
    res = sum([p[i] for i in range(3)])

    for i in range(3, n+1):
        res += p[n-2] + p[n-3]

    return res

它应该返回正确的第n个数字,但我不知道这是怎么回事。

1 个答案:

答案 0 :(得分:0)

您不更新列表项,并且始终重复使用相同(零个)的最后一项。不需要res

for i in range(3, n+1):
    p[i] = p[i-2] + p[i-3]

return p[n]

print(padovan(10))
>>12