初冀 2023-03-25 22:02 采纳率: 61%
浏览 14
已结题

C++函数调用不明白



```c++
 void  P(int W)
        {
            if (W>0)
              {   P(W-1);
                  P(W-1);
                  cout<<W;
               } 
        } 
    调用 P(4);

想问一下,为什么这个函数调用结果是   112112311211234
  • 写回答

3条回答 默认 最新

  • threenewbee 2023-03-25 22:14
    关注

    这是递归

    第一次调用 P(4):

    第一次调用 P(3):
    第一次调用 P(2):
    第一次调用 P(1):
    输出 1
    第二次调用 P(1):
    输出 1
    输出 2
    第二次调用 P(2):
    第一次调用 P(1):
    输出 1
    第二次调用 P(1):
    输出 1
    输出 2
    输出 3
    第二次调用 P(3):
    第一次调用 P(2):
    第一次调用 P(1):
    输出 1
    第二次调用 P(1):
    输出 1
    输出 2
    第二次调用 P(2):
    第一次调用 P(1):
    输出 1
    第二次调用 P(1):
    输出 1
    输出 2
    输出 3
    输出 4
    最终输出结果为:1 1 2 1 1 2 3 1 1 2 1 1 2 3 4

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 3月25日

悬赏问题

  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询