一个大数的阶乘!!
先贴代码,过几天在写自己的思路~
#include<iostream>
using namespace std;
int a[1000000];
int main(){
int n;
while (scanf("%d", &n) != EOF){
memset(a, 0, sizeof(a));
a[1] = 1;
int cnt = 1;
int jinwei;
for (int i = 1; i <= n; i++){
jinwei = 0;
for (int j = 1; j <= cnt; j++){
a[j] *= i;
a[j] += jinwei;
jinwei = 0;//初始化
if (a[j] > 10000){
jinwei = a[j] / 10000;
a[j] %= 10000;
}
}
if (jinwei){
cnt++;
a[cnt] = jinwei;
}
}
printf("%d", a[cnt]);
for (int i=cnt-1; i>=1; i--){
printf("%04d", a[i]);
}
printf("\n");
}
return 0;
}