#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
const int maxn=20000;
int n,c,k;
int f[maxn+1];
while(cin>>n)
{
memset(f,0,sizeof(f));
f[0]=1;
for (int i=1;i<=n;i++)
{
c=0;//代表进位
for(int j=0;j<=maxn;j++)
{
int s=f[j]*i+c;
f[j]=s%100000;//好好看看
c=s/100000;//每5位数字再进位
}
}
for(k=maxn;k>=0;k--)
if (f[k]!=0) break;
printf("%d",f[k]);
for(int j=k-1;j>=0;j--)
printf("%05d",f[j]);//5位的数字,不足前面添0
printf("\n");
}
return 0;
}
相关文章
- hdu 1042 N!(高精度乘法)
- poj 2109 Power of Cryptography(用double避开高精度)
- POJ 2109 Power of Cryptography【高精度+二分 Or double水过~~】
- POJ-2109 Power of Cryptography(数学或二分+高精度)
- POJ - 2109 Power of Cryptography(高精度log+二分)
- 检测Java程序运行时间的2种方法(高精度的时间[纳秒]与低精度的时间[毫秒])
- 更高性能表现、更低资源占用,高精度计算数据类型 DecimalV3 揭秘
- C#中的高精度计时方法(纳秒级别计时)
- 高精度快速幂(Java版)
- 大数据阶乘运算-java高精度运算