我的
代码
#include<iostream>
using namespace std;
void factorial(int n){
int a[10000] = {0}, //存储各位
flag = 0; //记录到第几位了
a[0] = 1;
for(int i = 1; i <= n; ++i){
int k = 0; //进位
for(int j = 0; j <= flag; ++j){
a[j] = a[j] * i + k; //每位做乘法
k = a[j] / 10;
a[j] %= 10;
}
while(k){
a[++flag] = k % 10; //如果最后进位不等于0,位数+1
k /= 10;
}
}
for(int i = flag; i >= 0; --i)
cout << a[i]; //输出
}
int main(){
int n;
cin >> n;
factorial(n);
return 0;
}