题目:
输出1~10000以内任意一个数的阶乘
思路:
#include <iostream>
using namespace std;
typedef int *Int;
const int default_len = 10001;
int len = 1;
void mul(int i , Int a)
{
int j,t,res=0;
for(j = 0 ; j < len ; j++)
{
t = i * a[j] + res;
a[j] = t % 10;
res = t / 10;
}
while(res)
{
a[len++]=res%10;
res/=10;
}
}
int main()
{
int n = 10;
Int a = new int[default_len];
a[0]=1;
while(cin>>n)
{
len=1;
for(int i = 2 ; i <= n ; i++)
mul(i,a);
for(int i = len - 1 ; i >= 0 ; i--)
cout << a[i];
cout << endl;
}
return 0;
}
参考来源:
https://www.cnblogs.com/hiyuexin/p/9979229.html