【题目描述】
求10000以内n的阶乘。。
【输入】
只有一行输入,整数n(0≤n≤10000)。
【输出】
一行,即n!的值。
【输入样例】
4
【输出样例】
24
【参考程序】
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n, len, x, a[40001];
cin >> n;
a[1] = 1; // 初始化为1
len = 1; // 数组a的实际位数
for (int i=1; i<=n; i++) {
x = 0; // x存储进位
for (int j=1; j<=len; j++) {
a[j] = a[j] * i + x;
x = a[j] / 10; // x处理上一位的进位
a[j] %= 10; // 只保留个位
if (x>0 && j>=len) {
len++; // 判断进位后整数长度是否增加
}
}
}
for (int i=len; i>=1; i--) {
cout << a[i];
}
return 0;
}