#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main() {
string a, b;
vector<int> ans;
int digit, carry = 0, i, j;
cin >> a >> b;
int len = a.length() > b.length() ? b.length() : a.length();
reverse(a.begin(),a.end());
reverse(b.begin(), b.end());
for (i = 0; i < len; i++) {
int sum = (a[i] - '0' < 10 ? a[i] - '0' : a[i] - 'a' + 10) + (b[i] - '0' < 10 ? b[i] - '0' : b[i] - 'a' + 10);
sum += carry;
digit = sum % 30;
carry = sum / 30;
ans.push_back(digit);
}
while (i < a.length()) {
int sum = (a[i] - '0' < 10 ? a[i] - '0' : a[i] - 'a' + 10);
sum += carry;
digit = sum % 30;
carry = sum / 30;
ans.push_back(digit);
i++;
}
while (i < b.length()) {
int sum = (b[i] - '0' < 10 ? b[i] - '0' : b[i] - 'a' + 10);
sum += carry;
digit = sum % 30;
carry = sum / 30;
ans.push_back(digit);
i++;
}
if (carry > 0) {
ans.push_back(1);
}
while (ans[ans.size()-1] == 0) {
ans.pop_back();
if (ans.size() == 0) {
cout << "0" << endl;
return 0;
}
}
reverse(ans.begin(), ans.end());
for(auto it = ans.begin(); it != ans.end(); it++) {
if ((*it) >= 10) {
cout << (char)('a' + ((*it) - 10));
}
else {
cout << (*it);
}
}
cout << endl;
return 0;
}
网友评论