1172:求10000以内n的阶乘
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 24454 通过数: 6083
【题目描述】
求1000010000以内nn的阶乘。
【输入】
只有一行输入,整数nn(0≤n≤100000≤n≤10000)。
【输出】
一行,即n!n!的值。
【输入样例】
4
【输出样例】
24
#include<iostream>
#include<cstring>
#define N 100010
using namespace std;
int n,a[N],lena=1;
int main(){
cin>>n;
a[0]=1;
for(int k=2;k<=n;++k){
for(int i=0;i<lena;++i)a[i]*=k;
for(int i=0;i<lena;++i){
if(a[i]>9){
a[i+1]+=a[i]/10;
a[i]%=10;
if(i==lena-1)++lena;
}
}
}
for(int i=lena-1;i>=0;--i)cout<<a[i];
cout<<endl;
}