【发布时间】:2020-10-12 19:49:12
【问题描述】:
问题:找到所提供参数的最小公倍数,该公倍数可以被两者以及这些参数之间范围内的所有序号均分。
范围将是一个由两个数字组成的数组,不一定按数字顺序。
例如,如果给定 1 和 3,求 1 和 3 的最小公倍数,它也能被 1 和 3 之间的所有数整除,即能被 1、2 和 3 整除。这里的答案是 6 .
function smallestCommons(arr) {
var max=Math.max(...arr);
var min=Math.min(...arr);
var flag = 0;
var i = min;
while(true)
{for(var j=min;j<=max;j++)
{if(i%j!=0)
{flag=1;
break;}
}
if(flag==0)
{flag=5;
break;
}
i++;
}
console.log(i);
}
smallestCommons([1,5]);
由于某种原因,我的解决方案似乎变得疯狂并进入无限循环。尽管如果我将 var i 初始化为 60(这是此特定情况下所需的输出,即 [1,5]),则解决方案似乎很好。有什么修正或猜测吗?
【问题讨论】:
-
使用调试器
-
是的,我试过调试。但这一切似乎都不起作用。我对这一切都比较陌生。因此我很难调试。 StackOverflow 会知道的。 ._.
-
当您将标志设置为不同于 0 的值时,您的循环将变为无限。只有在 flag = 0 时才停止 while 循环。
-
@AdilAhmed 调试是编程中的一项关键技能。这是你现在应该花一些时间学习的东西
-
不错!很高兴您确实找到了解决方案。
标签: javascript algorithm