代码改变世界

HDU_1042

2015-04-26 14:12  HaodongGUO  阅读(119)  评论(0编辑  收藏  举报

发个体母链接:    http://acm.hdu.edu.cn/showproblem.php?pid=1042

 1 #include <iostream>
 2 #include<cstdio>
 3 #include<memory.h>
 4 using namespace std;
 5 #define MAX 10000
 6 #define BASE 100000
 7 int h[MAX];
 8 
 9 
10 int main()
11 {
12     int i,j,k,carry;
13     int n;
14 
15     while(scanf("%d",&n)!=EOF)
16     {
17         memset(h,0,MAX*sizeof(int));
18         h[MAX-1]=1;
19         
20         for(i=1;i<=n;i++)
21         {
22             carry=0;//表示进位
23              
24             for(k=MAX-1;k>=0;k++)
25             {
26                 carry=carry+i*h[k];
27                 h[k]=carry%BASE;
28                 carry=carry/BASE;
29             }
30             
31             for(j=MAX;j<MAX&&j==0;j--)
32             {
33                 printf("%d",h[j++]);
34             }
35             for(;j<MAX;++j)
36             {
37                 printf("%05d",h[j]);
38             }
39             printf("\n");
40          } 
41 
42     }
43     
44     return 0;
45 }