题目描述:
求10000以内n的阶乘。
输入格式:
只有一行输入,整数n(0<=n<=10000)。
输出格式:
一行,即n!的值。
样例输入:
100
样例输出:
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
时间限制: 1000ms
空间限制: 128MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,s[1501]={1},a=1;
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<1501;j++){
s[j]=s[j]*a;
}
a++;
for(int j=0;j<1501;j++){
s[j+1]=s[j+1]+s[j]/10;
s[j]=s[j]%10;
}
}
for(int j=1500;j>=0;j--){
if(s[j]!=0){
for(int i=j;i>=0;i--){
cout<<s[i];
}
break;
}
}
return 0;
}