最小的公共多个代码在一个阵列上产生错误的答案

时间:2017-07-28 07:03:52

标签: javascript

[编辑]

我应该澄清,我试图找到一系列数字的最小公倍数。对于那个很抱歉。我尝试了另一种解决方案,但我仍然在最后一个阵列上遇到了错误的答案[23,18]。

Q

我的解决方案产生2018940,应该是6056820

1 个答案:

答案 0 :(得分:2)

你的无限循环是因为你的内部for循环从值19开始并且运行到22

414 (smallestMultiple of 18 & 23) % 19 == 15
414 % 20 = 14
414 % 21 = 15
414 % 22 = 18

如果(count%i == 0)为false并且你的for循环继续使用415 416,则会导致你的陈述......

如果你想得到的话 最不常见的多重

var isSmallestMultipe = 0;
while(isSmallestMultiple == 0)
{
   for(var i = 1; i <= arr[1]; i+)
   {
      if((arr[0]*i) % arr[1] == 0)
      {
         isSmallestMultiple = arr[0] * i;           
      }
   }
}