vector容器大数阶乘
时间: 2023-08-14 11:11:48 浏览: 133
要实现大数阶乘,可以使用vector容器来存储每一位的结果。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
// 大数阶乘函数
std::vector<int> factorial(int n) {
std::vector<int> result;
result.push_back(1); // 初始值为1
for (int i = 2; i <= n; ++i) {
int carry = 0; // 进位
for (int j = 0; j < result.size(); ++j) {
int product = result[j] * i + carry;
result[j] = product % 10; // 当前位的结果
carry = product / 10; // 进位
}
while (carry != 0) { // 处理最高位的进位
result.push_back(carry % 10);
carry /= 10;
}
}
// 反转结果,使得最高位在前
std::reverse(result.begin(), result.end());
return result;
}
// 输出大数阶乘结果
void printFactorial(std::vector<int> result) {
for (int i = 0; i < result.size(); ++i) {
std::cout << result[i];
}
std::cout << std::endl;
}
int main() {
int n = 100; // 求100的阶乘
std::vector<int> result = factorial(n);
printFactorial(result);
return 0;
}
```
这段代码使用vector容器来存储大数的每一位,通过循环计算每一位的结果,并处理进位。最后,将结果反转输出即可得到大数阶乘的结果。
阅读全文