#include<stdio.h>
int main()
{
int i,A[1005],B[1005],n,j;
scanf("%d", &n);
A[0]=B[0]=1;
//1的阶层是1
for (i=2;i<=n;i++){
//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;
}
//然后进行进位处理,如果某个元素大于等于10,则进位到下一位。
for (j=0;j<100;j++){
A[j]+=B[j];
if (A[j]>9) {
A[j+1] += A[j]/10;
A[j]%=10;
}
}
}
for (i=100;i>=0&&A[i]==0;i--);
for (j=i;j>=0;j--) printf("%d", A[j]);
// 从最高有效位开始输出阶乘结果。
return 0;
}
高精度阶层之和
最新推荐文章于 2024-09-15 21:41:38 发布