编写代码如下
//求1!+2!+3!+4!+...+10!的值
#include <stdio.h>
int main()
{
int i,j,m=1,sum=0;
for(i=1;i<=10;i++)
{
m=1; //关键点1。每求完一次阶乘,m需要置1
for(j=1;j<=i;j++)
{
m*=j;//关键点2。求每个数的阶乘
}
printf("%d的阶乘为:%d\n",i,m);
sum+=m;//关键点3。即将每个数的阶乘加起来求和
}
printf("\n");
printf("所求结果为:%d\n",sum);
return 0;
}
为了便于观察每一次阶乘的结果,我也将各个1~10之内各个数的阶乘打印了出来,结果如下所示:
解决本题的关键是要考虑到我在代码中所注释的3个关键点。