首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何完成“Java的艺术与科学”第4章中的练习3?

如何完成“Java的艺术与科学”第4章中的练习3?
EN

Stack Overflow用户
提问于 2012-08-05 09:43:48
回答 3查看 881关注 0票数 4

我必须编写一个程序,读入一个正整数,然后计算并显示前N个奇数整数的和。例如,如果N为4,则程序应显示值16,即1+3+5+ 7。

这就是我到目前为止所拥有的,但我遇到了一堵砖墙,希望能在正确的方向上指出一点。

代码语言:javascript
运行
复制
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);   
    }
}
EN

回答 3

Stack Overflow用户

发布于 2012-08-05 10:09:30

更好地为aggregating使用i

代码语言:javascript
运行
复制
int b = 0;
for (int i = 0; i < n; i++) {
    b += (2*i + 1);
}

输入4,结果: 16

票数 3
EN

Stack Overflow用户

发布于 2012-08-05 19:29:56

首先从for循环的末尾删除;

其次,使用sum作为变量来存储sum,使用b来保存奇数。

代码语言:javascript
运行
复制
int b=1, sum = 0;
for (int i = 1; i <=n; i++){
    sum+=b;
    b+=2;
}
票数 2
EN

Stack Overflow用户

发布于 2012-08-05 09:47:48

你在for循环后面有一个分号,所以循环中没有实际的代码,而且你的计算是错误的,你添加了一个额外的值,因为你从1开始b

代码语言:javascript
运行
复制
int b = 0;
int odd = 1;
for (int i = 0; i < n; i++){
    b = b + odd;
    odd += 2;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11813345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档