#include
int main()
{
double fun1(int n);
double sum=0,m;
int i;
for(i=1;i<=20;i++)
m=fun1(i);
sum=sum+m;
printf("%lf\n",sum);
}
double fun1(int n)
{
double m;
if(n==1)
m=1;
else m=fun1(n-1)*n;
return(m);
}
为什么程序的结果是2432902008176640000.000000?怎么得出正确结果?