- 已关闭**。此问题需要超过focused。当前不接受答案。
- 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
13小时前关门了。
Improve this question
我正在尝试获得一些JavaScript知识,我发现了这个代码挑战和它的解决方案,但我不太理解的解决方案。我想得到一个解释。
- 问题所在**
2520是能被1到10中的每一个数整除而不带余数的最小数。能被1到n中的所有数整除的最小正数是多少?(smallestMult(5)
* 应返回60 *)
- 解决方案**
function smallestMulT(num) {
let res = 0;
let i = 1;
let found = false;
while (found === false) {
res += num;
while (res % i === 0 && i <= num) {
if (i === num) {
found = true;
}
i++;
}
i = 1;
}
return res;
}
解决方案是有效的,我只是想了解它是如何工作的。例如,为什么有必要在while循环中重复i = 1;
?
2条答案
按热度按时间2jcobegt1#
这是因为该函数检查1和x(num)之间的每个数字是否可被该数字整除。
所以当你输入5的时候它基本上是这样的:
myzjeezk2#
因为在每一步中,它都要检查这个数是否能被所有小于num的数整除。如果不做i = 1,这个数将保持大于1的数,因此它将不是您想要的匹配。