c语言题 1!+2!+3!+4!+5!+.....20!

来源:百度知道 编辑:UC知道 时间:2024/05/27 10:46:04
求 1!+2!+3!+4!+5!+.....20!

#include <stdio.h>
void main()
{
double sum=0,p=1;
int i;
for(i=1;i<=20;i++)
{
p*=i;
sum+=p;
}
printf("%lf\n",sum);
}

如果你用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
你看行不?没调试