You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++递归函数func(5)输出21的计算逻辑解析请求

理解递归函数func(5)的计算过程

别担心,咱们一步步拆解这个递归调用的过程,你就能明白为什么结果是21了。首先先明确这个函数的规则:

  • 当x=0时,直接返回2
  • 当x=1时,直接返回3
  • 当x>1时,返回func(x-1) + func(x-2),也就是前两个数的和,逻辑类似斐波那契数列但初始值不同

现在咱们从func(5)开始逐层展开计算:

  • 计算func(5):
    根据规则,func(5) = func(4) + func(3),需要先算出func(4)和func(3)的值。

  • 计算func(4):
    func(4) = func(3) + func(2),得先算func(3)和func(2)。

  • 计算func(3):
    func(3) = func(2) + func(1),先算func(2)和func(1)。

  • 计算func(2):
    func(2) = func(1) + func(0),这里咱们已经知道基础情况(base case)的值了:

    • func(1)=3
    • func(0)=2
      所以func(2) = 3 + 2 = 5
  • 回到func(3):
    代入func(2)=5和func(1)=3,得到func(3) = 5 + 3 = 8

  • 回到func(4):
    代入func(3)=8和func(2)=5,得到func(4) = 8 + 5 = 13

  • 最后回到func(5):
    代入func(4)=13和func(3)=8,得到func(5) = 13 + 8 = 21

本质上这个函数生成的序列是:2, 3, 5, 8, 13, 21...每一项都是前两项之和,和斐波那契数列逻辑一致,只是起始的两个数是2和3而已。

内容的提问来源于stack exchange,提问作者Usman Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:51:53