เราจำเป็นต้องเขียนฟังก์ชัน 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