在JavaScript中,阶乘(Factorial)是一个常见的数学运算,表示一个正整数与所有小于它的正整数的乘积。阶乘通常表示为n!
,例如5! = 5 * 4 * 3 * 2 * 1 = 120
。
阶乘的定义如下:
0! = 1
(这是数学上的约定)n
,n! = n * (n-1) * (n-2) * ... * 1
阶乘可以通过递归或迭代的方式来实现。
递归是一种函数调用自身的方法。
function factorialRecursive(n) {
if (n < 0) {
throw new Error("阶乘未定义为负数");
}
if (n === 0 || n === 1) {
return 1;
}
return n * factorialRecursive(n - 1);
}
console.log(factorialRecursive(5)); // 输出: 120
迭代是通过循环来计算阶乘。
function factorialIterative(n) {
if (n < 0) {
throw new Error("阶乘未定义为负数");
}
let result = 1;
for (let i = 2; i <= n; i++) {
result *= i;
}
return result;
}
console.log(factorialIterative(5)); // 输出: 120
阶乘在组合数学、概率论、统计学等领域有广泛应用,例如计算排列数、组合数等。
function factorialBigInt(n) {
if (n < 0) {
throw new Error("阶乘未定义为负数");
}
let result = BigInt(1);
for (let i = 2; i <= n; i++) {
result *= BigInt(i);
}
return result;
}
console.log(factorialBigInt(20).toString()); // 输出: 2432902008176640000
通过以上方法,你可以在JavaScript中实现阶乘的计算,并根据具体需求选择合适的实现方式。
领取专属 10元无门槛券
手把手带您无忧上云