刘汝佳算法入门之第二章之阶乘之和(1)
#include<stdio.h>
int main()
{
int i,j,n,s=0;
int factorial=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
/*for(j=1;j<=i;j++)
factorial*=j;*/
factorial*=i;//此处经过修改更加简便,少了一个for循环
s+=factorial;
}
printf("%d\n",s%1000000);
return 0;
}
疑问,如果仍溢出,使用double型,但是double型数据似乎不能进行求余%的运算啊。因为它本身就是个双精度小数,如何求余呢?求解答。
浙公网安备 33010602011771号