【发布时间】:2021-10-27 12:34:35
【问题描述】:
我正在使用以下代码来确定两个或三个数字的最大公分母 (GCD):
Math.GCD = function(numbers) {
for (var i = 1 ; i < numbers.length ; i++){
if (numbers[i] || numbers[i] === 0)
numbers[0] = twogcd(numbers[0], numbers[i]);
}
return numbers[0];
function twogcd(first, second) {
if (first < 0) first = -first;
if (second < 0) second = -second;
if (second > first) {var temp = first; first = second; second = temp;}
while (true) {
first %= second;
if (first == 0) return second;
second %= first;
if (second == 0) return first;
}
}
};
Math.LCM = function(first,second) {
return first * (second / this.GCD(first, second)); // CANNOT FIGURE OUT HOW TO EXTEND THIS TO THREE #s
};
// example
console.log(Math.GCD([4, 5, 10]));
注意其中关于最小公倍数 (LCM)
的函数我正在尝试扩展此函数,以便它可以计算相同的两个或三个用户提供的输入的 LCM,但我终其一生都无法做到正确。我是 JavaScript 的新手,如果有任何帮助,我将不胜感激。请注意,如果某个字段留空,则也应将其从计算中省略,就像 GCD 所做的那样。
【问题讨论】:
-
@Nina:非常感谢! :)
标签: javascript math