#include <iostream>
using namespace std;
const int maxn=10000;
int main()
{
int a[maxn];
int n,i,j,len=1,pre;//len用来记录位数,pre为进位数
cin>>n;
a[0]=1;
if ((n==0)||(n==1)) cout<<1<<endl;
else
{
for (i=2;i<=n;i++)
{
pre=0;
for (j=0;j<len;j++)//各个位的处理
{
a[j]=a[j]*i;
a[j]=a[j]+pre;
pre=a[j]/10;
a[j]=a[j]%10;
}
while(pre)//末尾进位处理
{
a[j]=pre%10;
len=j+1;
pre=pre/10;
j++;
}
}
for (i=len-1;i>=0;i--)
cout<<a[i];
cout<<endl;
}
return 0;
}
高精度阶乘
最新推荐文章于 2021-05-21 06:06:08 发布