N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 43926 Accepted Submission(s): 12358
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 MAX_LEN 40000
int main()
{
int n;
int a[MAX_LEN];
while(scanf("%d",&n)!=EOF)
{
int i,j,sum,c;
memset(a,0,sizeof(a));
a[0]=1;
for(i=2;i<=n;i++)
{
c=0;
for(j=0;j<MAX_LEN;j++)
{
sum=a[j]*i+c;
a[j]=sum%10;
c=sum/10;
}
}
for(i=MAX_LEN-1;i>=0;i--)
if(a[i])
break;
//if(n==0)
//printf("0");
//else
//{
for(j=i;j>=0;j--)
printf("%d",a[j]);
//}
printf("
");
}
return 0;
}