int i,A[1005]={0},B[1005]={0},n,j;
scanf("%d", &n);
A[0]=B[0]=1;
for (i=2;i<=n;i++){
for (j=0;j<100;j++)
B[j]*=i; //先乘
for (j=0;j<100;j++)
if (B[j]>9){
B[j+1] += B[j]/10;
B[j]%=10; // 再进位
}
for (j=0;j<100;j++){
A[j]+=B[j];
if (A[j]>9) {
A[j+1] += A[j]/10;
A[j]%=10; // A为累加器
}
}
}
刷题随记 洛谷P1009 [NOIP1998 普及组] 阶乘之和 高精阶乘最简洁漂亮的写法
最新推荐文章于 2021-08-16 14:37:46 发布
这篇博客介绍了如何使用C语言计算阶乘之和的算法。通过双重循环,首先对每个数进行阶乘运算,然后将结果累加到总和中。在计算过程中,采用了进位处理来确保正确性。
368

被折叠的 条评论
为什么被折叠?



