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

如何用嵌套循环计算1到N的平方和与立方和?代码异常求助

问题分析与代码修正:平方和正确但立方和结果偏大

问题根源

你的代码使用了嵌套循环,外层循环每执行一次(从1到输入的N),内层的立方和循环就会完整遍历1到N一次——这意味着立方和被重复累加了N次。比如输入5时,正确的立方和是1³+2³+3³+4³+5³=225,但你的代码把这个值累加了5次,最终得到225*5=1125,这就是结果异常偏大的原因。

而平方和的计算是在外层循环中每次累加当前s的平方,外层循环仅执行N次,每次只加一个数的平方,所以结果正确。

修正方案

方案1:拆分循环,分别计算

将立方和的循环从嵌套结构中移出,单独执行一次即可:

int limitNum = input.nextInt();
double squareNums;
double sumofSq = 0;
double cubedNums;
double sumofCubes = 0;

// 计算1到N的平方和
for(int s = 1; s <= limitNum; s++) {
    squareNums = Math.pow(s, 2);
    sumofSq = sumofSq + squareNums;
}

// 计算1到N的立方和,单独循环一次
for(int c = 1; c <= limitNum; c++) {
    cubedNums = Math.pow(c, 3);
    sumofCubes = sumofCubes + cubedNums;
}

// 输出结果
System.out.println("平方和:" + sumofSq);
System.out.println("立方和:" + sumofCubes);

方案2:单循环同时计算(更高效)

不需要嵌套或两个独立循环,一次遍历即可同时完成两个求和:

int limitNum = input.nextInt();
double sumofSq = 0;
double sumofCubes = 0;

for(int i = 1; i <= limitNum; i++) {
    sumofSq += Math.pow(i, 2);
    sumofCubes += Math.pow(i, 3);
}

System.out.println("平方和:" + sumofSq);
System.out.println("立方和:" + sumofCubes);

验证结果

输入5时,两种方案都会输出:

  • 平方和:55.0
  • 立方和:225.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:10:27