社区讨论

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 条回复,欢迎继续交流。

正在加载回复...