#include<stdio.h>
#define M 1000
int a[M]={0},b[M]={0},n,i,j;
int main()
{
a[0]=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=0;j<M;j++)
a[j]*=i;
//进位
for(j=0;j<M-1;j++)
if(a[j]>9)
{
a[j+1]+=a[j]/10;
a[j]%=10;
}
for(j=0;j<M;j++)
b[j]+=a[j];
for(j=0;j<M-1;j++)
if(b[j]>9)
{
b[j+1]+=b[j]/10;
b[j]%=10;
}
}
for(i=M-1;i>=0&&b[i]==0;i--);
if(i>=0)
for(;i>=0;i--)
printf("%d",b[i]);
else
printf("0");
return 0;
}
高精度解洛谷阶乘之和
最新推荐文章于 2025-12-14 12:39:05 发布
该程序实现了一个大整数的乘法运算,通过循环乘法和进位处理,将两个大整数相乘并输出结果。输入一个整数n,程序会计算从1到n的所有整数之积,展示了一个简单的大型数值计算过程。
941

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



