[编程入门]阶乘求和
- 题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
- 输入
n
- 输出
Sn的值
- 样例输入
5
- 样例输出
153
#include<stdio.h>
int main()
{
//i控制循环的次数,b为输入的数字,a为每次加的数,sn为和
//此题的关键是:sn和a必须为long double型,否则可能会发生溢出,导致结果不正确
int i=1,b;
long double sn=0;
long double a=1;
scanf("%d",&b);
for(i=1;i<b;i++)
{
a=a*(i+1);
sn=sn+a;
}
sn+=1;
printf("%.0Lf",sn);
return 0;
}