如果你用64位整型是能直接算出来的。gcc下是unsigned long long,VC.NET下是unsigned __int64。低版本VC是没有64位整数的,肯定不能直接算,要用高精度。
sum=0; fact=1;for(i=1;i<=20;i++){ fact=fact*i; sum=sum+fact;}如果fact,sum溢出,可以用double,或long double来声明sum和fact你看行不?没调试