#include <iostream> #include <algorithm> #include <vector> using namespace std; vector<int> _add(string lag,string sma){ vector<int> res; int cinx = 0; for(int i=0;i<sma.size();i++){ int temp = ( (lag[i]-'0')+(sma[i]-'0')+cinx )%10; // 下一个进位 cinx = ( (lag[i]-'0')+(sma[i]-'0')+cinx )/10; res.push_back(temp); } // 最后还有一个进位的话直接加入末尾 if(cinx!=0) res.push_back(cinx); return res; } int main() { string a, b; while (cin >> a >> b) { // 注意 while 处理多个 case vector<int> res; // 逆序 模拟普通加法规则 得到逆序的结果 std::reverse(a.begin(),a.end()); std::reverse(b.begin(),b.end()); int an = a.size(); int bn = b.size(); // 填充使长度相等 if(an<bn){ for(int i=0;i<bn-an;i++) a+="0"; }else{ for(int i=0;i<an-bn;i++) b+="0"; } // 计算 res = _add(a, b); std::reverse(res.begin(),res.end()); for(auto p:res) cout<<p; cout<<endl; } } // 64 位输出请用 printf("%lld")