社区讨论
60分求解
P1001A+B Problem参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mjfe12xq
- 此快照首次捕获于
- 2025/12/21 15:10 2 个月前
- 此快照最后确认于
- 2025/12/23 21:20 2 个月前
CPP
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> stringToVector(const string& num) {
vector<int> digits(num.length());
for (int i = 0; i < num.length(); ++i) {
digits[num.length() - i - 1] = num[i] - '0';
}
return digits;
}
string highPrecisionAddition(const string& num1, const string& num2) {
vector<int> digits1 = stringToVector(num1);
vector<int> digits2 = stringToVector(num2);
int maxLength = max(digits1.size(), digits2.size());
vector<int> result(maxLength + 1, 0);
for (int i = 0; i < maxLength; ++i) {
if (i < digits1.size()) result[i] += digits1[i];
if (i < digits2.size()) result[i] += digits2[i];
// 处理进位
if (result[i] >= 10) {
result[i + 1] += result[i] / 10;
result[i] %= 10;
}
}
string sum;
bool leadingZero = true;
for (int i = result.size() - 1; i >= 0; --i) {
if (result[i] == 0 && leadingZero && i != 0) continue;
leadingZero = false;
sum += result[i] + '0';
}
return sum;
}
int main() {
string num1, num2;
cin >> num1 >> num2;
cout << highPrecisionAddition(num1, num2) << endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...