高精度阶乘
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=50000;
int s[maxn];
int n;
int main()
{
while(cin>>n)
{
int i,j,t,k;
memset(s,0,sizeof(s));
s[0]=1;
int c,l=1;
if(n==0||n==1) printf("1");
else
{
for(i=2;i<=n;i++)
{
c=0;
for(j=0;j<l;j++)
{
int tem=s[j]*i+c;
s[j]=tem%10;
c=tem/10;
}
while(c)
{
s[l++]=c%10;
c/=10;
}
}
for(i=l-1;i>=0;i--) printf("%d",s[i]);
}
printf("\n");
}
return 0;
}