js实现阶乘之和
实现阶乘之和的方法
计算单个数字的阶乘
阶乘的计算可以通过递归或循环实现。以下是两种方法的代码示例:
递归方法
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}
return n * factorial(n - 1);
}
循环方法
function factorial(n) {
let result = 1;
for (let i = 2; i <= n; i++) {
result *= i;
}
return result;
}
计算阶乘之和
阶乘之和即从1到n的阶乘相加。以下是实现阶乘之和的代码:
function factorialSum(n) {
let sum = 0;
for (let i = 1; i <= n; i++) {
sum += factorial(i);
}
return sum;
}
优化计算阶乘之和
在计算阶乘之和时,可以利用前一个阶乘的结果来优化计算:

function optimizedFactorialSum(n) {
let sum = 0;
let currentFactorial = 1;
for (let i = 1; i <= n; i++) {
currentFactorial *= i;
sum += currentFactorial;
}
return sum;
}
示例调用
console.log(factorialSum(5)); // 输出 1! + 2! + 3! + 4! + 5! = 153
console.log(optimizedFactorialSum(5)); // 同样输出 153
注意事项
- 阶乘增长非常快,当n较大时,结果可能会超出JavaScript的数字表示范围(
Number.MAX_SAFE_INTEGER为9007199254740991)。 - 对于较大的n,建议使用大整数库(如
BigInt)来处理。





