最小公共倍数[Javascript挑战]

最小公共倍数[Javascript挑战],javascript,algorithm,Javascript,Algorithm,问题:找到所提供参数的最小公倍数,该公倍数可以被二者以及这些参数之间的所有序列号平均除 范围将是两个数字的数组,不一定是数字顺序 例如,如果给定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;

问题:找到所提供参数的最小公倍数,该公倍数可以被二者以及这些参数之间的所有序列号平均除

范围将是两个数字的数组,不一定是数字顺序

例如,如果给定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]);
function smallestCommons(arr){
var max=数学最大值(…arr);
var min=数学最小值(…arr);
var标志=0;
var i=最小值;
while(true)

{for(var j=min;j@凯文对它不工作的原因给出了很好的解释。只有当
标志
0
时,循环才会停止。但一旦它被设置为
1
,你就永远不会将它重置为
0

function smallestCommons(arr){
var max=数学最大值(…arr);
var min=数学最小值(…arr);
var标志=0;
var i=最小值;
while(true){

对于(var j=min;j我确实找到了解决方案,这要感谢主要评论部分中的两位编程极客

function smallestCommons(arr) {
  var max=Math.max(...arr);
  var min=Math.min(...arr);
  var flag = 0;
  var count = 0;
  var i = 1;
    while(1){
      for(var j=min;j<=max;j++)
      {if(i%j!=0)
        {flag=1;
        break;}
      if(j==max){
        flag=0;
      }
      }
      if(flag==0){
        break;
      }
      i++;
 }
console.log(i);
}


smallestCommons([10,2]);

function smallestCommons(arr){
var max=数学最大值(…arr);
var min=数学最小值(…arr);
var标志=0;
var计数=0;
var i=1;
而(1){

对于(var j=min;juse the debugger是的,我尝试过调试。但这一切似乎都不起作用。我对这一切都比较陌生。因此调试对我来说很困难。StackOverflow会知道...\ux。当你将标志设置为不同于0的值时,你的循环将变得无限。你只会在标志=0时停止while循环。@AdilAhmed debuging IIt’这是编程中的一项关键技能。你现在应该花点时间来学习这项技能。尼斯!我很高兴你找到了解决方案。是的,伙计。这非常有效。我确实花了一些时间来理解你的代码,但现在我明白了,我可以放心地说我的疑问已经消除了。谢谢你的时间。:)