N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 51867 Accepted Submission(s): 14612
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#include<stdio.h> #include<string.h> #define maxn 50000 int result[maxn]; int main() { int n; int i,j; while(scanf("%d",&n)!=EOF) { memset(result,0,sizeof(result)); int digit=1; int x; result[0]=1; for(i=1;i<=n;i++) { int t=0; for(j=0;j<digit;j++) { x=result[j]*i+t;//可找一个数为表示上一位的余数 result[j]=x%10; t=x/10; if(t&&digit<=j+2)//注意:digit一定要加约束条件多一位即可 { digit++; } } } // printf("digit=%d\n",digit); for(i=digit;i>=0;i--) if(result[i]) break; // printf("i=%d\n",i); for(;i>=0;i--) printf("%d",result[i]); printf("\n"); } return 0; }