无线OSS-高精度整数加法(HJ57)
一:解题思路
这道题目和 leetcode67 二进制求和 有些类似,可以放在一起进行学习。
二:完整代码示例 (C++版和Java版)
C++:
#include <iostream> #include <string> #include <algorithm> using namespace std; string addLongNumber(string a, string b) { int i = a.size() - 1; int j = b.size() - 1; int carry = 0; string sb = ""; while (i >= 0 || j >= 0 || carry != 0) { int sum = carry; if (i >= 0) sum += a[i--] - '0'; if (j >= 0) sum += b[j--] - '0'; sb.append(to_string(sum%10)); carry = sum / 10; } reverse(sb.begin(),sb.end()); return sb; } int main() { string a = ""; string b = ""; while (cin >> a >> b) { cout << addLongNumber(a,b) << endl; } return 0; }

浙公网安备 33010602011771号