#include<bits/stdc++.h>
using namespace std;
#define N 1000
int a[N];
void factorial(int n)
{
memset(a,0,sizeof(a));
int sum,k;
a[0]=1;
for(int i=2; i<=n; i++)
{
k=0;
for(int j=0; j<N; j++)
{
sum=a[j]*i+k; /// 用k判断是否有进位
a[j]=sum%10;
k=sum/10;
}
}
int ii;
for(int i=N-1; i>=0; i--) ///忽略掉前导0
{
if(a[i])
{
ii=i;
break;
}
}
for(int i=ii; i>=0; i--)
{
printf("%d",a[i]);
}
printf("\n");
}
int main()
{
int n;
while(scanf("%d",&n)==1)
{
factorial(n);
}
}
个人模板 大数阶乘
最新推荐文章于 2021-11-27 22:14:44 发布