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

为何首次cout输出为3 22?C++递归函数执行疑问

问题原因解释

你看到的"3 22"并非首次cout的输出结果,而是两次连续输出拼接后的视觉效果,具体执行流程如下:

  • 首次调用fun(3,2):执行cout << 3 << " " << 2;,实际输出内容是 3 2,但没有换行或额外分隔符。
  • 紧接着进入第二次递归调用fun(2, 3*2=6):执行cout << 2 << " " << 6;,输出内容是 2 6。

两次输出直接拼接后,控制台就会显示3 22 6,你误以为这是首次cout的结果,实际上前半部分3 2是第一次输出,后面的2是第二次输出的开头数字。

完整的执行输出拆解:

  1. 第一次输出:3 2 → 控制台显示:3 2
  2. 第二次输出:2 6 → 控制台显示:3 22 6
  3. 第三次输出:1 12 → 控制台显示:3 22 61 12
  4. 第四次输出:0 12 → 控制台最终显示:3 22 61 120 12

如果想区分每次cout的输出,可以在语句末尾添加换行符,修改为:

cout << x << " " << y << endl;

这样每次递归的输出就会单独占一行,不会出现拼接混淆的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:20:32