描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0
#include<iostream>
#include<cstring>
using namespace std;
const int N = 20000;
int fac[N];
int main()
{
int cur,m,flag = 0;
cin >> m;
memset(fac,0,sizeof(fac));
int i,j;
fac[0] = 1;
for(i = 2;i<=m;i++)
{
flag = 0; //flag表示进位数
for(j=0;j<N;j++)
{
cur = fac[j]*i + flag;//flag表示进位数
flag = cur/10;
fac[j] = cur%10;
}
}
for( i = N-1;i>=0;i--)
{
if(fac[i]) break;//去0
}
for(;i>=0;i--)
cout<<fac[i];
return 0;
}