【发布时间】:2018-10-10 22:34:33
【问题描述】:
我想看看能被所有一位数整除的最小数字是多少,我没有查找它,而是创建了这个。
public static void main(String[] args) {
for (int i = 100; i < 10000; i++) {
if (i % 2 ==0) {
if (i % 3 ==0) {
if (i % 4 ==0) {
if (i % 5 ==0) {
if (i % 6 ==0) {
if (i % 7 ==0) {
if (i % 8 ==0) {
if (i % 9 ==0) {
System.out.println(i);
break;
}
}
}
}
}
}
}
}
}
}
如您所见,我在 if 语句 x9 中有一个 if 语句。该代码有效,但我想使用数组压缩我的 if 语句以使我的 if 语句像这样,但它不起作用。
if (i % x[1, 2, 3, 4, 5, 6, 7, 8]) {
System.out.println(i);
break;
}
有什么建议吗?
【问题讨论】:
-
使用
&&?或创建一个通用方法,如isModuloOf(int number, int...modulosToTest) -
从字面上看,
if (i%2==0 && i%3==0 /* etc */)将是一个 if 语句。 -
查看埃拉托色尼筛法,了解解决此问题的巧妙算法。 en.m.wikipedia.org/wiki/Sieve_of_Eratosthenes
-
如果
i % 8 == 0那么检查i % 4 == 0和i % 2 == 0是没用的。i % 3 == 0i % 9 == 0时相同 -
这个问题更适合codereview.stackexchange.com
标签: java