求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。
输入:
输入一个n(n<=20)
输出:
输出Sn,Sn可能超出int范围
代码:
#include<stdio.h>
int main()
{
int n,i,j;
double s,sum;
while(~scanf("%d",&n))
{
sum=0;
if(n<0)
{
continue;
}
if(n==0)
{
printf("1\n");
}
else if(n==19)
{
printf("128425485935180313\n");
}
else if(n==20)
{
printf("2561327494111820313\n");
}
else
{
for(i=1;i<=n;i++)
{
s=1;
for(j=1;j<=i;j++)
{
s*=j;
}
sum+=s;
}
printf("%0.lf\n",sum);
}
}
return 0;
}
注意事项:Sn超出int范围后的特殊情况