m0_49938637 2021-07-23 21:34 采纳率: 100%
浏览 19
已结题

斐波那契数列中的return有疑问

def test(i):
    if i == 1:
        return 1
    if i == 2:
        return 1
    if i >= 3:
        return test(i - 1) + test(i - 2)

这是求第i项的数字是多少的函数。

这里对return有个疑问,如果函数参数i=1 返回1,然后退出函数。i=2,返回2,退出函数。

如果i=3,他会返回一个test(2)+test(1)。重点是:我记得当执行return后,自动退出函数,所以函数不会再回到前两行找到test2与test1对应的数值,所有当i=3时候,只返回test(2)+test(1)。我不知道这样理解哪里错了,求各位指正,🙏!

  • 写回答

1条回答 默认 最新

  • 浪客 2021-07-23 21:46
    关注

    理解没问题,i=3的时候就只是返回test(2)+test(1)
    i=3 的时候
    test(3)
    --test(2)+test(1)
    =1+1=2

    i=4
    test(4)
    -- test(3)+test(2)
    =3

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月31日
  • 已采纳回答 7月23日
  • 创建了问题 7月23日