#include <iostream>
#include <vector>
using namespace std;
void multiply(vector<int>& num, int x) {
int carry = 0;
for (int i = 0; i < num.size(); i++) {
int prod = num[i] * x + carry;
num[i] = prod % 10;
carry = prod / 10;
}
while (carry > 0) {
num.push_back(carry % 10);
carry /= 10;
}
}
string factorial(int n) {
if (n < 0) {
return "Invalid input";
} else if (n == 0 || n == 1) {
return "1";
} else {
vector<int> num;
num.push_back(1);
for (int i = 2; i <= n; i++) {
multiply(num, i);
}
string result;
for (int i = num.size() - 1; i >= 0; i--) {
result += to_string(num[i]);
}
return result;
}
}
int main() {
int n = 100;
string result = 0;
int m;
cin >>m;
for(int i = 1 ; i <= m ; i++)
result += factorial(i);
cout << result << endl; // 输出100的阶乘结果
return 0;
}
我已经在编译器选项中写了“-std=c++11”但是报错
"terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid"
帮我看看吧