我必须编写一个程序,读入一个正整数,然后计算并显示前N个奇数整数的和。例如,如果N为4,则程序应显示值16,即1+3+5+ 7。
这就是我到目前为止所拥有的,但我遇到了一堵砖墙,希望能在正确的方向上指出一点。
import acm.program.*;
public class OddIntegers extends ConsoleProgram {
public void run() {
println("This program adds the number of odd numbers");
int n = readInt("Enter a positive number: ");
int b = 1;
for (int i = 0; i < n; i++);
b = b + (b + 2);
println("The total is " + b);
}
}发布于 2012-08-05 10:09:30
更好地为aggregating使用i
int b = 0;
for (int i = 0; i < n; i++) {
b += (2*i + 1);
}输入4,结果: 16
发布于 2012-08-05 19:29:56
首先从for循环的末尾删除;。
其次,使用sum作为变量来存储sum,使用b来保存奇数。
int b=1, sum = 0;
for (int i = 1; i <=n; i++){
sum+=b;
b+=2;
}发布于 2012-08-05 09:47:48
你在for循环后面有一个分号,所以循环中没有实际的代码,而且你的计算是错误的,你添加了一个额外的值,因为你从1开始b。
int b = 0;
int odd = 1;
for (int i = 0; i < n; i++){
b = b + odd;
odd += 2;
}https://stackoverflow.com/questions/11813345
复制相似问题