#include <iostream>//数据范围不大,用long long直接可以,练习一下高精度加减法 #include <algorithm> #include <cmath> #include <cstring> #include <string> using namespace std; string Add(string s1, string s2) { int l1 = s1.size(), l2 = s2.size(); if (l1 < l2)swap(s1, s2); reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); int car = 0; string s = ""; for (int i = 0; i < s2.size(); i++) { int num = (s1[i] - '0') + (s2[i] - '0') + car; car = num / 10; char c = num % 10 + '0'; s = s + c; } for (int i = s2.size(); i < s1.size(); i++) { int num = (s1[i] - '0') + car; car = num / 10; char c = num % 10 + '0'; s = s + c; } if (car)s = s + "1"; reverse(s.begin(), s.end()); while (s[0] == '0')s.erase(0, 1); if (s == "")s = "0"; return s; } bool cmp(string s1, string s2) { int l1 = s1.size(), l2 = s2.size(); if (l1 < l2)return false; else if (s1 < s2)return false; return true; } string Sub(string s1, string s2) { int l1 = s1.size(), l2 = s2.size(); if (l1 < l2)swap(s1, s2); else if (s1 < s2)swap(s1, s2); reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); int car = 0; int ans[l1+2]; string s = ""; memset(ans, 0, sizeof(ans)); for (int i = 0; i < s2.size(); i++) { ans[i] += (s1[i] - s2[i]); if (ans[i] < 0) { ans[i + 1] -= 1; ans[i] += 10; } char c = ans[i] + '0'; s = s + c; } for (int i = s2.size(); i < s1.size(); i++) { ans[i] += s1[i] - '0'; char c = ans[i] + '0'; s = s + c; } if(ans[s1.size()]!=0){ char c = ans[s1.size()] + '0'; s = s + c; } reverse(s.begin(), s.end()); while (s[0] == '0')s.erase(0, 1); if (s == "")s = "0"; return s; } int main() { string A, B; while (cin >> A >> B) { for (int i = 0; i < A.size(); i++) { if (A[i] == ',') { A.erase(i, 1); i--; } } // cout << A << endl; for (int i = 0; i < B.size(); i++) { if (B[i] == ',') { B.erase(i, 1); i--; } } if (A[0] != '-' && B[0] != '-')cout << Add(A, B) << endl; else if (A[0] == '-' && B[0] == '-') { A.erase(0, 1); B.erase(0, 1); cout << "-" << Add(A, B) << endl; } else { if (A[0] == '-') { A.erase(0, 1); if (cmp(A, B)) { cout << "-" << Sub(A, B) << endl; } else cout << Sub(A, B) << endl; } else { B.erase(0, 1); if (cmp(A, B)==false) { cout << "-" << Sub(A, B) << endl; } else cout << Sub(A, B) << endl; } } // cout << B << endl; // string ans = Add(A,B); // cout<<ans<<endl; // cout<<Sub("234567890","123456789")<<endl; } // cout<<Sub("386" ,"4508")<<endl; } // 64 位输出请用 printf("%lld")