#include<stdio.h>
int main()
{
int i = 1;
int n = 0;
int a = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
a = 1;
for (i= 1; i <= n; i++)
{
a = a * i;
//a是不会被清除的,也就是说上一次的a值会保留,当咱算完1的阶乘时a=1,
//当咱算完2的阶乘时,a=2.然后咱再取计算3的阶乘,此时的a=2,那么当i=1时,
//a=a*i=2*1=2,当i=2时,a=a*i=2*2=4.当i=3时,a=a*i=4*3=12。
//所以需要再这个循环开始之前先设a的初始值,就让a=1,就行
}
sum = sum + a;
}
printf("sum=%d\n", sum);
return 0;
}
有个更简单的
#include <stdio.h>
int main()
{
int n = 0;
int a = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
a *= n;//因为1!*2=2!,2!*3=3!,3!*4=4!,......
sum += a;
}
printf("sum=%d", sum);
return 0;
}