N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 79104 Accepted Submission(s): 23122
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
#include<iostream>
using namespace std;
// 24
// 5
// 10 20
// 0 2 1
int main()
{
int n;
while(cin>>n)
{
int a[36001]={0},sum,t=0,i,j;//t初始為0
a[0]=1;//注意循環從2開始
for(i=2;i<=n;i++)
{
sum=0;
for(j=0;j<36001;j++)
{
sum=a[j]*i+t;
a[j]=sum%10;
t=sum/10;
}
}
for(i=36001-1;i>=0;i--)
{
if(a[i]!=0) break;
}
for(j=i;j>=0;j--)
cout<<a[j];
cout<<endl;
}
}
1
2
3
Sample Output
1
2
6