【发布时间】: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 个数字时我得到了错误的结果。欢迎任何建议/更正。
【问题讨论】:
-
希望这可能有用。 [GDC 和 LCM][1] [1]:stackoverflow.com/questions/4201860/… [2]:stackoverflow.com/questions/5611751/gcd-and-lcm-relation
-
您至少可以显示方法失败的输入和输出。当然要意识到,乘以的数字越多,遇到整数溢出的可能性就越大。如果您的数字太大而无法准确表示,那么数学就会崩溃。
标签: javascript math