提交时间:2025-12-08 18:57:36

运行 ID: 75627

#include <iostream> #include <string> #include <algorithm> std::string subtractLargeNumbers(const std::string& a, const std::string& b) { std::string result; int carry = 0; int i = a.size() - 1, j = b.size() - 1; while (i >= 0 || j >= 0 || carry != 0) { int digitA = (i >= 0) ? a[i] - '0' : 0; int digitB = (j >= 0) ? b[j] - '0' : 0; int diff = digitA - digitB - carry; if (diff < 0) { diff += 10; carry = 1; } else { carry = 0; } result.push_back(diff + '0'); i--; j--; } std::reverse(result.begin(), result.end()); return result; } int main() { std::string a = "1" + std::string(10086, '0'); // 极大值示例 std::string b = "9" + std::string(10085, '9'); std::cout << subtractLargeNumbers(a, b) << std::endl; return 0; }