파이썬 같은 언어는 10,000자리 정도의 자연수도 자유롭게 다룰 수 있습니다. 하지만 C/C++이라면 이 문제를 어떻게 풀까요? C/C++ 사용자가 아니더라도 고민해 보면 좋을 것입니다.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string A, B;
cin >> A >> B;
reverse(A.begin(), A.end());
reverse(B.begin(), B.end());
while (A.length() > B.length()) {
B += '0';
}
while (B.length() > A.length()) {
A += '0';
}
int carry = 0;
string ans = "";
for (int i = 0; i < A.length(); i++) {
int now = A[i] - '0' + B[i] - '0' + carry;
ans += to_string(now % 10);
carry = now / 10;
}
if (carry != 0)
ans += to_string(carry);
reverse(ans.begin(), ans.end());
cout << ans;
return 0;
}