难以理解斐波那契数列

问题描述 投票:0回答:1
def fibo(n):
    if n <= 0:
        return []
    elif n <= 1:
        return [1]
    elif n <= 2:
        return [0, 1]
    else: 
        fibo_s = fibo(n - 1) # Can someone please explain me this else code
        fibo_s.append(fibo_s[-1] + fibo_s[-2])
        return fibo_s

print(fibo(6))

请帮助我理解“其他代码”,我无法理解

fibo(n-1)
将如何存储
[1,0]

python fibonacci
1个回答
0
投票

fibo
函数被递归调用。

例如,如果我们调用

fibo(4)
,则使用 else 分支。
fibo(n-1)
fibo(3)
。现在在 that 递归调用中,调用
fibo(2)
。立即返回
[0, 1]

为此,我们附加在该列表中添加最后两项的结果。现在

fibo_s
[0, 1, 1]
This 返回到
fibo(4)
调用,该调用将添加最后两个元素(
1
1
)的结果附加到该列表,给出结果
[0, 1, 1, 2]

© www.soinside.com 2019 - 2024. All rights reserved.