1218: N!
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 158 Solved: 24
[ Submit][ Status][ Web Board]
Description
Given an integer N(0 ≤ N ≤ 3000), 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<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int a[10000],h=1,jws=0;
memset(a,0,sizeof(a));
a[0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<h;j++)
{
int rex=a[j]*i+jws;
jws=rex/10;
a[j]=rex%10;
}
while(jws)
{
a[h++]=jws%10;
jws/=10;
}
}
for(int i=h-1;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
return 0;
}