【问题标题】:Greater Common Divisor/ Least Common Divisor for JavaScriptJavaScript 的最大公约数/最小公约数
【发布时间】:2014-07-28 09:04:45
【问题描述】:

我正在尝试找出计算最小公倍数 (LCM) 的一些问题。

为了计算 GCD(两个或三个数字),我使用了两个公式:

gcdTwoNumbers:function(number1,number2){

    if(number2 == 0){
        return number1;
    }

    return this.gcdTwoNumbers(number2, number1 % number2);

}

和

gcdThreeNumbers:function(number1, number2, number3){

  return this.gcdTwoNumbers(number1, this.gcdTwoNumbers(number2,number3));

}

为了计算 LCM,我分别为两个或三个数字调用上述函数:

      var lcm = randomNumber1 * randomNumber2  / (gcdTwoNumbers(randomNumber1,randomNumber2));

和

      var lcm = randomNumber1 * randomNumber2 * randomNumber3 / (gcdThreeNumbers(randomNumber1,randomNumber2,randomNumber3));

计算两个数字是正确的,但计算 3 个数字时我得到了错误的结果。欢迎任何建议/更正。

【问题讨论】:

标签: javascript math


【解决方案1】:

问题出在计算 LCM 的公式上。

应该是:

      var tmp = randomNumber1 * randomNumber2 / (gcdTwoNumbers(randomNumber1, randomNumber2));

      var lcm = tmp*randomNumber3 / gcdTwoNumbers(tmp,randomNumber3);

所以,gcdThreeNumbers 函数没用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    相关资源
    最近更新 更多