คำนวณแฟกทอเรียล (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());