1172:求10000以内n的阶乘
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
求1000010000以内nn的阶乘。
【输入】
只有一行输入,整数nn(0≤n≤100000≤n≤10000)。
【输出】
一行,即n!n!的值。
【输入样例】
4
【输出样例】
24
#include<bits/stdc++.h>
using namespace std;
int n,i,j,jc[36000],l=1;
int main()
{
jc[0] = 1;
cin>>n;
if(n<=1)
{
cout<<n;
return 0;
}
for(i=1;i<=n;i++)
{
for(j=0;j<l;j++) jc[j]*=i;
for(j=0;j<l;j++)
if(jc[j]>=10)
{
jc[j+1]+=jc[j]/10;
jc[j]%=10;
if(j==l-1) l++;
}
}
for(i=l-1;i>=0;i--) cout<<jc[i];
return 0;
}