在 JavaScript 中计算多个数字的 LCM
javascriptweb developmentfront end technologyobject oriented programming
我们需要编写一个 JavaScript 函数,该函数接受任意长度的数字数组并返回它们的 LCM。
我们将分部分解决这个问题 −
第 1 部分 − 我们将创建一个辅助函数来计算两个数字的最大公约数 (GCD)
第 2 部分 − 然后使用第 1 部分辅助函数,我们将创建另一个辅助函数来计算两个数字的最小公倍数 (LCM)。
第 3 部分 −最后,使用第 2 部分的辅助函数,我们将创建一个循环遍历数组并计算数组 LCM 的函数。
示例
其代码为 −
const calculateLCM = (...arr) => { const gcd2 = (a, b) => { // 2 个整数的最大公约数 if(!b) return b===0 ? a : NaN; return gcd2(b, a%b); }; const lcm2 = (a, b) => { // 2 个整数的最小公倍数 return a * b / gcd2(a, b); } // 整数列表的最小公倍数 let n = 1; for(let i = 0; i < arr.length; ++i){ n = lcm2(arr[i], n); } return n; }; console.log(calculateLCM(12, 18, 7, 15, 20, 24, 28));
输出
控制台中的输出将是 −
2520