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日

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了