HDU 1042. 大数乘法之阶乘模板
原题链接
简单
作者:
史一帆
,
2021-04-08 21:12:01
,
所有人可见
,
阅读 313
C++ 代码
#include <iostream>
#include <vector>
using namespace std;
vector<int> C;
void factor(int n)
{
C.push_back(1); // 如果n == 1 ,答案数组为1
for (int i = 2; i <= n; i ++) // n != 1 , 执行递归 乘法代码
{
int t = 0; // t 是进位
for (int j = 0; j < C.size(); j ++) // 遍历当前答案数组中的每一位
{
C[j] = C[j] * i + t;
t = C[j] / 10;
C[j] %= 10;
}
while (t)
{
C.push_back(t % 10);
t /= 10;
}
}
}
int main()
{
int n;
while (cin >> n)
{
C.clear(); // 每次算阶乘之前要清空答案数组
factor(n);
for (int i = C.size() - 1; i >= 0; i --) cout << C[i];
cout << endl;
}
return 0;
}