虽然答案对了,但看到占用的时间和内存,我总觉得哪里有问题…… https://www.luogu.com.cn/record/85784899
#include <iostream>
#include <string>
using namespace std;
const int MAXN = 16777216;
int a[MAXN] = {0}, b[MAXN] = {0}, sum[MAXN] = {0};
string sa, sb;
bool flag = false;
int main() {
cin >> sa >> sb;
if (sa == "0" and sb == "0") {
puts("0");
return 0;
}
for (int i = 0; i < sa.length(); i++) {
a[i] = sa[sa.length() - i - 1] - '0';
}
for (int i = 0; i < sb.length(); i++) {
b[i] = sb[sb.length() - i - 1] - '0';
}
for (int i = 0; i < MAXN; i++) {
sum[i] = a[i] + b[i];
}
for (int i = 0; i < MAXN; i++) {
if (sum[i] >= 10) {
sum[i + 1] += (sum[i] - (sum[i] % 10)) / 10;
sum[i] %= 10;
}
}
for (int i = MAXN - 1; i >= 0; i--) {
if (sum[i] != 0) {
flag = true;
}
if (flag) {
cout << sum[i];
}
}
cout << endl;
return 0;
}