50
30414093201713378043612608166064768844377641568960512000000000000
#include <stdio.h>
#include <string.h>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include<queue>
#include<stack>
using namespace std;
int a[10000];
int main()
{
int n;
while(~scanf("%d",&n))
{
int digit=1;
int res,sum;
int i,j,k;
a[0]=1;
for(i=2;i<=n;i++)
{
for(res=0,j=1;j<=digit;j++)
{
sum=a[j-1]*i+res;
a[j-1]=sum%10;
res=sum/10;
}
while(res)
{
digit++;
a[digit-1]=res%10;
res/=10;
}
}
for(k=digit;k>=1;k--)
{
printf("%d",a[k-1]);
}
cout<<endl;
}
return 0;
}
原文地址:http://blog.csdn.net/holyang_1013197377/article/details/42869265