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

C++嵌套For循环计算阶乘结果错误,求原因及解决办法

阶乘计算错误的修复

你的代码问题出在**fact变量没有每次计算前重置**:

  • 你只在程序最开始把fact初始化为1,之后计算每个数字的阶乘时,都是在上一次的结果基础上继续相乘,导致结果是累积的乘积(比如计算5的阶乘时,实际是1!×2!×3!×4!×5!的累积值)。

修正后的代码:

for (int number=1; number<=10; number++) {
    int fact=1; // 每次计算新数字的阶乘前,重置fact为1
    for (int i=1; i<=number; i++) {
        fact=fact*i;
    }
    cout <<"factorial of "<<number<<"="<<fact<<"\n";
}

修复说明:

  • 把fact的初始化移到外层循环内部,这样每次计算number的阶乘时,fact都会从1开始重新累乘,得到正确的单个数的阶乘结果。
  • 给内层循环加上大括号,避免代码缩进导致的逻辑歧义(原代码里cout的执行逻辑没问题,但加括号能让代码结构更清晰)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:31:00