N!
Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 27 Accepted Submission(s) : 8
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
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<cstdio> #include<cstdlib> #include<cstring> #define maxn 40000 using namespace std; int f[maxn]; int main() { int s,c,i,j,n,k; while(scanf("%d",&n)!=EOF){ memset(f,0,sizeof(f)); f[0]=1; for(i=2;i<=n;i++){ c=0; for(j=0;j<maxn;++j){ s=f[j]*i+c; f[j]=s%10; c=s/10;}} for(j=maxn;j>=0;--j)if(f[j])break; for(i=j;i>=0;--i) printf("%d",f[i]); printf("\n");} return 0; }