<script>
/* 求1!+2!+3!+...+20!的值 */
// 定义一个变量来存储阶乘的和
var sum = 0
// 循环1到20
for (var i = 1; i <= 20; i++) {
// 每个阶乘都是从1开始的,循环i次,标记变量取值1到i
// 定义一个变量来存储每一个阶乘的值,把num定义在第二个for循环的前面可以确保每一次第二个for循环开始时num的值都为1
var num = 1
for (var j = 1; j <= i; j++) {
num *= j
}
sum += num
}
// 输出1到20的阶乘的和
console.log('20的阶乘和:' + sum);
// 使用一层循环
var num1 = 1, sum1 = 0
for (var i = 1; i <= 20; i++) {
// 每次循环num1都不重置,所以循环i次就是i的阶乘
//i=1,num1=1;i=2,num1=1*2;i=3,num1=1*2*3
num1 *= i
// sum1在每次循环时都加上i的阶乘
sum1 += num1
}
console.log('20的阶乘和:' + sum1);
</script>
08-23
3435
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-09
7981
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)