这个有别于一般的阶乘,因为10000的阶乘的结果会有近四万位,c++中无论哪种数据都是不可能实现的,但是我们可以借助数组模拟实现,
样例输入
100
样例输出
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
源代码:
#include<iostream>
using namespace std;
int main()
{
int result[40000];
int h=1,num,res,i,j,medium;
cin>>num;
result[0]=1;
for(i=1;i<=num;i++)
{
res=0;
for(j=0;j<h;j++)
{
medium=result[j]*i+res;
result[j]=medium%10;
res=medium/10;
}
while(res)
{
result[h++]=res%10;
res/=10;
}
}
for(i=h-1;i>=0;i--)
{
cout<<result[i];
}
return 0;
}