N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 41724 Accepted Submission(s): 11601
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<iostream> using namespace std; #define MAX 40000 int main() { int n; while(cin>>n){ int s[MAX]; s[0]=1; int digit=1,num=0,sum=0; if(n==0) { cout<<"1"<<endl; continue; } for(int i=1;i<=n;i++){ //乘数 for(int j=0;j<digit;j++){ //被乘数的位数 sum=i*s[j]+num; s[j]=sum%10; num=sum/10; } while(num){ s[j++]=num%10; num/=10; digit++; } } for(i=digit-1;i>=0;i--) cout<<s[i]; cout<<endl; } return 0; }