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