杭电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 }

 

posted @ 2016-11-13 15:02  Posase  阅读(344)  评论(0编辑  收藏  举报