【题目描述】
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
#include<stdio.h>
long int fun(int n){
long int t;
if(n==1)
t=1;
else
if(n>1)
t=n*fun(n-1);
return (t);
}
int main(){
int n;
long int sum,t;
scanf("%d",&n);
for(;n>0;n--)
{
t=fun(n);
sum=sum+t;
}
printf("%ld",sum);
return 0;
}
刚开始没有用long int,直接用int在n大于10时会溢出,判题器判了50%的错。
但修改后判题器直接给判全错了,不知道怎么回事,一个个数试了的确没错……迷惑。