求10000以内n的阶乘
总时间限制:
5000ms
内存限制:
655360kB
描述
求10000以内n的阶乘。
输入
只有一行输入,整数n(0<=n<=10000)。
输出
一行,即n!的值。
样例输入
100
样例输出
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
代码
#include<iostream>
using namespace std;
int ans[
100000000],jinwei,chengji;
int main()
{
int k=
1,n;
cin>>
n;
ans[1]=
1;
for(
int i=
1;i<=n;i++)
//枚举因式中的每一个因子
{
jinwei=
0;
for(
int j=
1;j<=k;j++
)
{
chengji=ans[j]*i+
jinwei;
jinwei=chengji/
10;
ans[j]=chengji%
10;
}
while(jinwei)
{
ans[++k]=jinwei%
10;
jinwei/=
10;
}
}
for(
int i=k;i>=
1;i--
)
{
cout<<
ans[i];
}
}
转载请注明原文地址: https://ju.6miu.com/read-672057.html