大数阶乘
话不多说上代码
#include <iostream>
using namespace std;
int main()
{
int c[50002];
int n;
c[0] = 1;
int di = 1; //位数出是为一
int num = 0; //进位初始为零
cin >> n; // 求n!
for(int i = 2; i <= n; i++ ) //从1乘到n
{
for(int j = 0; j < di; j++) //每一位乘i
{
num = c[j] * i + num;
c[j] = num % 10; //取个位
num = num / 10; //获取进位
}
while(num) //如有进位
{
c[di] = num % 10;
num = num / 10;
di++;
}
}
for(int i = di - 1; i >= 0; i--) //倒序输出
{
cout << c[i] ;
}
return 0;
}