📅  最后修改于: 2023-12-03 15:10:43.068000             🧑  作者: Mango
本JavaScript程序用于查找给定数组的最小公倍数(LCM)。
为了计算LCM,我们需要使用以下公式:
LCM(a, b) = (a * b) / GCD(a, b)
其中,GCD是最大公约数。因此,我们需要编写一个GCD函数来计算最大公约数。
以下是实现代码片段:
function gcd(a, b) {
if (b === 0) {
return a;
} else {
return gcd(b, a % b);
}
}
function lcm(arr) {
let res = arr[0];
for (let i = 1; i < arr.length; i++) {
res = (res * arr[i]) / gcd(res, arr[i]);
}
return res;
}
首先,我们定义了一个名为gcd
的函数,它需要两个参数a和b。如果b等于0,则返回a。否则,我们递归地调用gcd
函数,将b和a除以b的余数作为参数传递。
然后,我们定义了一个名为lcm
的函数,它需要一个数组参数arr
。我们先初始化一个变量res
,将其设置为数组的第一个元素。然后,我们使用一个for循环迭代数组中的其余元素。对于每个元素,我们将res
与其乘积除以它们的最大公约数,得到新的res
值。最后,我们将res
作为返回值返回。
以下是如何使用此函数查找给定数组的LCM的示例:
const arr = [4, 6, 8];
console.log(lcm(arr)); // 输出24
这个JavaScript程序使用GCD和LCM的公式来查找给定数组的最小公倍数。它可以作为计算LCM的实用工具,在JavaScript应用程序中使用。