逻辑性较强,建议记住。
分析思路:
假如n=4:m = m * i; sum = sum + m;
1)当i=1时,m=1, sum=1。
2)当i=2时,m=1×2, sum=1+1×2。
3)当i=3时,m=1×2×3, sum=1+1×2+1×2×3。
4)当i=4时,m=1×2×3×4, sum=1+1×2+1×2×3+1×2×3×4。
综上所述:
1 定义m,每次遍历循环,都乘自己,得到n! = m * i;
2 每次乘法得到的阶乘再相加,得到各阶乘相加的和。
#include <stdio.h>
int main(void)
{
int n = 0;
int i = 0;
int m = 1;
int sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
for(i=1; i<=n; ++i)
{
m = m * i;
sum = sum + m;
}
printf("sum = %d\n", sum);
return 0;
}