我的代码如下,但为什么19之前的阶层之和都对,但从19开始就不对了,跟正确的数字差了7,而20就更不对,而且差的更大
#include <stdio.h>
void main()
{
int i;
double f=1,sum=0;
for(i=1;i<=20;i++)
{ f=f*i;
sum=sum+f;
}
printf("1到20的阶层数之和为%lf\n",sum);
}
一个一个验算过去的,从1到18的阶层都对,但从19开始就错了,你也可以按按计算机,就按1到20的阶层之和,是2432902008176640000,而我的程序结果是2561327494111820300,我算到19的阶层的时候相差7,但20就差那么多,也不知道是什么有问题
追答2561327494111820300是正确结果,你按计算机按错了吧