0

求 1000 以下所有 3 或 5 的倍数之和。

我的程序用于抽取所有 3 和 5 的倍数,但是当我将它运行到 1000 时,它只打印出从 363 开始的 3 和 5 的倍数。

我的问题是,为什么?这是我的代码:

class threeAndFive {
    public static void main(String[] args) {
        for(int i = 1; i < 1000; i++) {
            if (i % 3 == 0) {
                System.out.println(i);
            } else if (i % 5 == 0) {
                System.out.println(i);
            } else if (i % 3 == 0 && i % 5 == 0) {
                System.out.println(i);
            }
        }
    }
}

输出样本:

前 7 行输出是

363
365
366
369
370
372
375

最后7行输出是

985
987
990
993
995
996
999

那么,如果从我的 for 循环来看,它应该从 3 一直迭代到 999,那么它的输出是从 363 开始的呢?

编辑

我发现我的本意是要找到 SUM,而不是打印出数字。无论哪种方式,我的问题仍然存在。

4

2 回答 2

3

代码运行良好。您的 IDE(可能是 Eclipse)只是显示空间不足,不会向您显示前面的行。可以配置将存储在输出控制台中的行数。你也可以打印出数字,它们之间只有空格,这样可以绕过限制。

于 2012-11-12T06:46:43.480 回答
1

if 语句的顺序在逻辑上也是错误的。

if (i % 3 == 0 && i % 5 == 0) 
{
       System.out.println(i);
}
else if (i % 3 == 0) 
{
       System.out.println(i);
} 
else if (i % 5 == 0) 
{
    System.out.println(i);
} 
于 2012-11-12T06:46:58.203 回答