Online Compiler C

#include <stdio.h> int main() { int n,sum=0; scanf("%d",&n); while(n>0){ sum=sum+n*n+n*n*n; n--; } printf("%d",sum); return 0; }
这段代码的功能是:读入一个整数 n,然后计算从 n 到 1 每个数的平方与立方之和,并输出总和。

代码逻辑上有一个问题:循环中每次累加的是当前 n 的平方加立方,但题目可能要求的是从 1 到 n 的平方和与立方和,或者是对每个数分别计算平方和与立方和。当前写法是每次加 n² + n³,并且 n 递减,所以最终结果是 n² + n³ + (n-1)² + (n-1)³ + ... + 1² + 1³。

- 检查一下题目要求:是计算每个数的平方与立方分别求和,还是计算每个数的平方加立方再求和?当前代码是后者,可能不符合题意。
- 注意变量命名和循环逻辑:如果题目要求分别计算平方和与立方和,那么需要两个独立的累加变量,而不是合并成一个。