Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

คำนวณ Factorial (แฟกทอเรียล) - JavaScript

คำนวณแฟกทอเรียล (Factorial) n! = n × (n-1) × ... × 1

ตัวอย่างโค้ด

const factorial = num => {
  let res = 1;
  for (let i = num; i > 1; i--) {
    res *= i;
  }
  return res;
};

console.log(factorial(14));

ผลลัพธ์

87178291200

วิธีแบบ Recursive

const factorial = n => n <= 1 ? 1 : n * factorial(n - 1);

วิธีแบบ Reduce

const factorial = n => 
  Array.from({ length: n }, (_, i) => i + 1).reduce((a, b) => a * b, 1);

ข้อควรระวัง

  • JavaScript Number จัดการได้สูงสุดถึง 170! (เกินกว่านั้นเป็น Infinity)
  • สำหรับ BigInt ใช้ BigInt และคูณด้วย n * factorial(n-1)
const factorialBigInt = n => {
  let res = 1n;
  for (let i = 2n; i <= n; i++) res *= i;
  return res;
};
console.log(factorialBigInt(100n).toString());