gpt4 book ai didi

javascript - 循环/javascript euler 中的错误# 5

转载 作者:行者123 更新时间:2023-12-02 14:08:21 27 4
gpt4 key购买 nike

我尝试解决这个问题,找到第一个能被 1 到 20(含)的所有数字整除的整数,但我的程序进入了无限循环。请告诉我我的错误在哪里以及如何修复它,提前谢谢。

var number = 0;
var test = false;

while (test === false) {
for (var i = 1; i <= 20; i++) {
if (number % i === 0) {
continue;
} else {
break;
}
test = true;
}
number += 20;
}
console.log(number);

最佳答案

  for (var i = 1; i <= 20; i++) {
if (number % i === 0) {
continue;
} else {
break;
}
test = true;
}

所以,假设数字是 17,i=1if 语句为 true,所以我们点击 continue,这会将我们带到循环的下一次迭代。

然后,i=2if语句为假,我们点击了break,所以我们退出了for循环。

请注意,您从未遇到过 test = true 行,因此 test 永远不会为 true,并且循环会继续,您只需每次将 number 增加 20 即可。

每当我们到达 for 循环的末尾或点击中断命令时,我们都会到达 number += 20 行,因此 number 会发生变化,但 test 不会。

所以,这是我的工作解决方案

    var number = 0;
var test = false;

while (test === false) {
test = true
number += 20;
for (var i = 2; i <= 20; i++) {
if (number % i !== 0) {
test = false;
break;
}
}
}
console.log(number);

因此,这背后的逻辑是,一旦我们进入 while 循环,我们就假设该数字就是我们要查找的数字,直到 if 语句的计算结果为 true 并且我们被证明是错误的。然后 while 循环继续。

如果我们从未运行 if 语句内的代码,那么我们就有了答案。

此外,我增加了 while 循环顶部的数字,否则您将不得不从最终答案中减去 20。

关于javascript - 循环/javascript euler 中的错误# 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39861884/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com