阅读背景:

我的算法是错误的还是正确的,只是需要调整?

来源:互联网 

<html><head></head>
<body><script>
  function GCD(a, b) {
    if (a == 0) {
      return b;
    }
    return GCD(b % a, a);
  }

  function difference(array) {
    for (var i = Math.min(...array) + 1; i < Math.max(...array); i++) {
      array.push(i);
    }
    array.sort((a, b) => a - b);
  }

  function smallestCommons(arr) {
    difference(arr);
    console.log(arr);
    a = arr[arr.length - 1];
    b = arr[arr.length - 2];
    var LCM = a * b / GCD(a, b);
    while (true) {
      var index = arr.findIndex(element => LCM % element !== 0);
      if (index === -1) {
        return LCM;
      }
      LCM *= arr[index];
      console.log(LCM);
    }
  }
  smallestCommons([1, 5]) // right 
  smallestCommons([2, 10]) // right
  smallestCommons([1, 13]) // wrong
  smallestCommons([23, 18]) // wrong
</script></body>
</html><html><head></head>
<body><script>



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: