杭电1042
1 #include<stdio.h> 2 #include<string.h> 3 long long a[10000]; 4 const int maxn = 1e9; 5 int main() 6 { 7 int n,i,j,len=0; 8 while(~scanf("%d",&n)) 9 { 10 memset(a,0,sizeof a); 11 for(i=2,a[0]=1,len=1; i<=n; ++i) 12 { 13 for(j=0; j<=len; ++j) 14 { 15 if(j) 16 { 17 a[j]=a[j]*i+a[j-1]/maxn; 18 a[j-1]%=maxn; 19 } 20 else 21 a[j]*=i; 22 } 23 if(a[len]) 24 len++; 25 } 26 for(i=len-1; i>=0; --i) 27 if(i==len-1) 28 printf("%lld",a[i]); 29 else 30 printf("%09lld",a[i]); 31 printf("\n"); 32 } 33 }