【发布时间】:2019-08-17 11:00:03
【问题描述】:
我正在尝试解决这个问题: "2520 是可以除以 1 到 10 的每个数字而没有余数的最小数字。
能被 1 到 20 的所有数整除的最小正数是多少?"
请不要告诉我答案,我真的很想自己解决。我需要的只是关于问题数学方面的建议。问题是每个周期添加一个并不是一个好主意,因为这个过程太慢了。还是变量类型不长有问题?
我试图得到可以被 (1 和 10) 甚至 (1 和 17) 之间的所有数字整除的数字,并且算法运行良好。
int in_num = 1;
int score = 0;
public void calculate() {
while (true) {
score = 0;
for (int x = 1; x < 21; x++) {
if ((in_num%x) == 0) {
score++;
}
}
System.out.println("Number " + in_num + " has " + score );
if (score == 20) {
System.out.println(in_num);
break;
}
in_num++;
}
我期望特定的整数,但我得到了无限循环。
【问题讨论】:
-
"还是变量类型不长有问题?" - 答案是可以表示为
int的数字吗?提示:您可以测试...当您增加in_num -
另外,我可以建议您使用拼写检查器吗?第一个版本的标题中有三个拼写错误。而且代码的缩进搞砸了。
-
问题是我还没有答案,因为循环不会停止。但是数字 232775004 是循环数字的示例,似乎可用于 java 中的 int 类型。
-
是什么让你这么想?你检查过
int的最大允许值是多少? -
从 1 到 20 的所有数字中最小的可整除数将是从 1 到 20 的所有数字的 LCM。