您的位置:首页 > 其它

浙工大15新生赛 JLB A+B

2016-12-16 14:10 211 查看
#include <iostream>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;
int main() {
string Lu, Hui, Zheng, Yi;
stack<int> q;
while (cin >> Lu >> Hui && EOF) {
int l1 = Lu.length() - 1, l2 = Hui.length() - 1;
if (l1 >= l2) {
Yi = Lu;
Zheng = Lu;
for (int i = 0; i <= l1 - l2; i++)
Yi[i] = '0';
for (int i = l1 - l2, j = 0; j <= l2; j++, i++)
Yi[i] = Hui[j];
for (int i = 0; i <= l1; i++)
Zheng[i] = Lu[i];
}
if (l2 > l1) {
Yi = Hui;
Zheng = Hui;
for (int i = 0; i <= l2 - l1; i++)
Yi[i] = '0';
for (int i = l2 - l1, j = 0; j <= l1; j++, i++)
Yi[i] = Lu[j];
for (int i = 0; i <= l2; i++)
Zheng[i] = Hui[i];
}
int i, w = 0;
int e = max(l1, l2);
for (i = e; i >= 0; i--) {
int x = Zheng[i] - '0' + w, y = Yi[i] - '0';
if (x + y < 10) {
q.push(x + y);
w = 0;
}
else {
q.push((x + y) % 10);
w = 1;
if (i == 0)
q.push(1);
}
}
while (!q.empty()) {
int r = q.top(); q.pop();
printf("%d", r);
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: