เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขที่มีความยาวเท่าใดก็ได้และส่งกลับ LCM ของพวกมัน
เราจะแก้ไขปัญหานี้ในส่วนต่างๆ -
ตอนที่ 1 − เราจะสร้างฟังก์ชันตัวช่วยเพื่อคำนวณตัวหารร่วมที่ยิ่งใหญ่ที่สุด (GCD) ของตัวเลขสองตัว
ตอนที่ 2 − จากนั้นเมื่อใช้ฟังก์ชันตัวช่วยส่วนที่ 1 เราจะสร้างฟังก์ชันตัวช่วยอื่นเพื่อคำนวณตัวช่วยร่วมที่น้อยที่สุด (LCM) ของตัวเลขสองตัว
ตอนที่ 3 − สุดท้ายนี้ โดยใช้ฟังก์ชันตัวช่วยส่วนที่ 2 เราจะสร้างฟังก์ชันที่วนรอบอาร์เรย์และคำนวณ LCM ของอาร์เรย์
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const calculateLCM = (...arr) => {
const gcd2 = (a, b) => {
// Greatest common divisor of 2 integers
if(!b) return b===0 ? a : NaN;
return gcd2(b, a%b);
};
const lcm2 = (a, b) => {
// Least common multiple of 2 integers
return a * b / gcd2(a, b);
}
// Least common multiple of a list of integers
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