gpt4 book ai didi

javascript - Project Euler #5 JavaScript - 解决方案在我的代码中出现一个大错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:58:10 25 4
gpt4 key购买 nike

我对 JS 还很陌生,尽管完全错误,但我还是让我的代码工作了 - 所以我很感激一些帮助!

我正在研究问题 5 的解决方案:https://projecteuler.net/problem=5

我的想法是从一个 while 循环开始,该循环执行直到遇到满足任务条件的最小数字。

但是当我“完成”时,我意识到即使我没有在代码中将 while 循环条件重新分配为 false,代码仍然可以工作。它只是自行停止循环,并且当删除 while 循环时代码将不起作用。

我已经找到了解决此问题的一些其他解决方案,例如使用不太常见的倍数,但我更愿意先纠正我的代码。

function smallestMultiple(max) {
var n = max;
var counter = 0;
var evenlyDivided = true;

while (evenlyDivided) {
for (var i=1; i<=max; i++) {
if(n%i===0) {
counter += 1;
if(counter===max) {
return n;
}
}
else {
counter=0;
n++;
}
}
}
}
smallestMultiple(10);

附注由于我正在学习并且没有养成任何 JS 代码的良好习惯,非常欢迎对我的代码的所有反馈和批评!

最佳答案

这是因为当计数器等于 max 时,您会执行返回。 Return 的意思是函数结束,就在这里停止并返回这个值!因此,当您的条件匹配时,该函数以及您的 while 循环将停止执行。

因此,您可以将 evenlyDivided 设置为 false,并在 while 循环后返回 n,而不是在循环中返回值。

关于javascript - Project Euler #5 JavaScript - 解决方案在我的代码中出现一个大错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514072/

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