在JavaScript中实现n阶乘(Factorial)可以通过递归或迭代的方式完成。阶乘的定义是所有从1到n的正整数的乘积,通常表示为n!。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。
以下是两种实现方式的示例代码:
function factorialRecursive(n) {
if (n === 0 || n === 1) {
return 1;
}
return n * factorialRecursive(n - 1);
}
// 使用示例
console.log(factorialRecursive(5)); // 输出: 120
function factorialIterative(n) {
let result = 1;
for (let i = 2; i <= n; i++) {
result *= i;
}
return result;
}
// 使用示例
console.log(factorialIterative(5)); // 输出: 120
阶乘在数学计算、组合数学、概率论、统计学等领域有广泛应用,例如计算排列数、组合数等。
Number.MAX_SAFE_INTEGER
),这时需要使用大数库(如BigInt
)来处理。BigInt
处理大数阶乘function factorialBigInt(n) {
let result = BigInt(1);
for (let i = 2; i <= n; i++) {
result *= BigInt(i);
}
return result;
}
// 使用示例
console.log(factorialBigInt(20).toString()); // 输出: 2432902008176640000
通过上述方法,你可以根据具体需求选择合适的实现方式来计算n阶乘。
领取专属 10元无门槛券
手把手带您无忧上云