#include <iostream> using namespace std; class strnum{ private: int hcf_dvqi(string& s1, string& s2){//-------------使两个数组一样长,并在前面加一个0防止越界,最后返回最终长度 size_t size1 = s1.size(), size2 = s2.size(); if (size1 < size2){ for (int i = 0; i < size2 - size1; i++) s1 = '0' + s1; } if (size1 > size2) for (int i = 0; i < size1 - size2; i++) s2 = '0' + s2; s1 = '0' + s1; s2 = '0' + s2; return max(size1, size2) + 1; } void hcf_quiuqmdclk(string& ss){//-------------去除前导零 while (ss[0] == '0' && ss.size() != 1) ss = ss.substr(1, ss.size() - 1); } public: string s; strnum(string ss){ s = ss; } string operator + (strnum& ss){//----------重载运算符‘+’ int size = hcf_dvqi(s, ss.s); int rest = 0, temp; string ans = ""; for (int i = size - 1; i >= 0; i--){ temp = ((int)(s[i] + ss.s[i] - '0' - '0') + rest); rest = temp / 10;//--------进位用 ans = (char)(temp % 10 + '0') + ans; } hcf_quiuqmdclk(ans); return ans; } }; int main() { string s, ss; cin >> s >> ss; strnum s1(s), s2(ss); cout << s1 + s2; } // 64 位输出请用 printf("%lld")