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<pre name="code" class="cpp">#include<iostream> #include<cstdio> using namespace std; int a[50000]; int main() { int i,j,n,carry; while(~scanf("%d",&n)){ a[0]=1,a[1]=1; if(n==0 || n==1){ printf("1\n"); continue; } for(i=2;i<=n;i++){ carry=0; for(j=1;j<=a[0];++j){ int temp=a[j]*i+carry; carry=temp/10; a[j]=temp%10; } while(carry){ a[j]=carry%10; a[0]=j; carry/=10; j=j+1;//上一个for循环在n时产生多于一位的进位 while可能要执行多次 } } for(i=a[0];i>=1;--i) printf("%d",a[i]); puts(""); } return 0; }