#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;
}
PAT B1113 钱串子的加法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 Google Play应用市场对于应用的targetSdkVersion有了更为严格的要求。从 2018 年...