【发布时间】:2021-09-23 15:02:06
【问题描述】:
我还没有使用for 学习循环,所以我使用while 解决了这个问题,但我找不到我的问题的问题,总和显然应该是 233168,我我越来越 234168 我根本无法确定我错过了它。
问题:如果我们列出所有小于 10 且是 3 或 5 倍数的自然数,我们会得到 3、5、6 和 9。这些倍数之和是 23。
求 1000 以下所有 3 或 5 的倍数之和。
package net.projecteuler;
public class Problem01 {
public static void main(String[] args) {
int n, sum;
boolean notFinished = true;
n = 0;
sum = 0;
while(notFinished) {
if(n % 3 == 0 || n % 5 == 0) {
sum = (sum + n);
}
n = (n + 1);
if(n > 1000) {
notFinished = !true;
}
}
System.out.print("A soma dos números é " + sum);
}
}
【问题讨论】:
-
能分享一下问题定义吗?
-
当然,抱歉,我忘记了。 projecteuler.net/problem=1
-
不,在问题的正文中。我们希望我们的问题是独立的。
-
好了,抱歉。
-
即使没有问题说明,我也倾向于猜测您有一个错误。预期值和计算值之间的差值为 1000,这显然是在迭代的终点。由于逻辑是结构化的,您的代码将在退出之前使用
n == 1000执行迭代,并且可能不应该这样做。
标签: java loops while-loop