N!

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 34699    Accepted Submission(s): 9717


Problem Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!
 

 

Input
One N in one line, process to the end of file.
 

 

Output
For each N, output N! in one line.
 

 

Sample Input
1 2 3
 

 

Sample Output
1 2 6
 1 /*
 2 #include<stdio.h>
 3 #include<string.h>
 4 #define MAX 60000
 5 int main()
 6 {
 7     int n,i,j,p,t;
 8     int a[MAX];
 9     while(scanf("%d",&n)!=EOF)
10     {
11         memset(a,0,sizeof(a));
12         a[0]=1;//注意赋初值为1
13         for(i=1;i<=n;++i)
14         {
15             t=0;
16             for(j=0;j<MAX;++j)
17             {
18                 p=a[j]*i+t;
19                 a[j]=p%10;
20                 t=p/10;
21             }
22         }
23         j=MAX-1;
24         while(!a[j])
25         --j;
26         for(;j>=0;--j)
27             printf("%d",a[j]);
28         printf("\n");
29     }
30         return 0;
31 }
32 //上边代码超时
33 */
34 
35 
36 #include<stdio.h>
37 #define MOD 100000//5位一存
38 int main()
39 {
40     int a[8000];//10000!大概有10000*4=40000位,5位一存,数组大小需要开40000/5=8000的大小    
41     int n,i,j,bit,t;
42     while(scanf("%d",&n)!=EOF)
43     {
44         if(n==0||n==1)
45         {
46             printf("1\n");
47             continue;
48         }//特殊情况
49         bit=a[0]=1;
50         t=0;
51         for(i=2;i<=n;++i)
52         {
53             for(j=0;j<bit;++j)
54             {
55                 t+=i*a[j];
56                 a[j]=t%MOD;
57                 t=t/MOD;
58             }
59             if(t>0)//一轮乘法过后,是否产生新的进位 
60             {
61                 a[bit++]=t;
62                 t=0;
63             }
64         }
65         printf("%d",a[bit-1]);//首位不能为0,所以先输出
66         for(i=bit-2;i>=0;--i)
67             printf("%05d",a[i]);//注意:5位一存输出格式05不能写成5
68 //输出占位符,就这题目来说,输出a[i]时,输出五位,右对齐,不足五位用0补位。例如a[i]=1时,输出00001。
69         printf("\n");
70     }
71     return 0;
72 }

 

posted on 2012-08-28 21:27  可笑痴狂  阅读(704)  评论(0编辑  收藏  举报