首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅添加奇数

仅添加奇数
EN

Stack Overflow用户
提问于 2012-11-15 18:47:02
回答 6查看 18.4K关注 0票数 2

所以我试图解决的问题是,用户应该输入任何正数。然后,我尝试编写一个程序,只将奇数加到用户输入的数字上,并显示总数。例如,如果用户输入4,我的程序应该添加四个奇数。1+3+5+7= 16。

我唯一可用的工具是for statement、if、if/else if、while loop和println。

我只能想出如何打印出奇数。我知道我想创建一个名为total的变量来存储将所有奇数相加的值,但我不知道如何将其应用到程序中。

代码语言:javascript
运行
复制
import acm.program.*;

public class AddingOddNumbers extends ConsoleProgram {
    public void run() {
        int n = readInt("enter a positive nunber: ");
        int total = 0;
        for (int i = 0; i < n; i++) {
            if (n == 1) {
                println(1);
            } else {
                println((i * 2) + 1);
            }
        }
    }
}
EN

Stack Overflow用户

发布于 2012-11-15 18:58:15

也许你知道如何计算所有数字的和,直到给定的数字n?公式很简单:(n * (n+1))/2。现在只得到奇数的和有点棘手,但是-不用担心,你可以只使用前面的公式。首先请注意,直到给定数字n的所有偶数的和是:

如果N是偶数(即直到n/2乘以2的所有数字的和),这是因为如果N是奇数,你就有奇数,如果N是奇数,你就会有奇数

事实上,如果你有整数除法,公式总是:(((n/2)* (n/2+1))/2) * 2 = (n/2)* (n/2+1)

因此,要计算所有奇数的和,直到n,您只需从所有数字的和中减去偶数的和:

(n * (n+1))/2 - (n/2)*(n/2+1)

事实上,如果你仔细观察,你会注意到1+3+...(2*n-1)总是等于n^2

这个答案应该可以帮助你解决所有语言的问题,我把代码留给你了。字面上只有一行。

票数 1
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13395898

复制
相关文章

相似问题

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