#include
int main() {
__int64 fact = 1,i,sum = 0;
for(i = 1; i < 21; ++i) {
fact *= i;
sum += fact;
}
printf("sum = %I64d\n",sum);
return 0;
}
类型必须设置为__int64 或者long long 否则会溢出
你的代码就是这样 会溢出的
int jiecheng(int n){
int a=1;
if(n==0){
return 1;
}
else if(n>0){
return n*=jiecheng(n-1);
}
}