参考@Senjie这位老哥的,感谢!!!
代码十分简洁,感觉还不戳特此分享!!!
#include<bits/stdc++.h> using namespace std; int main() { string s1,s2; while(cin>>s1>>s2) { int c=0;//进位 string result;//最后结果 reverse(s1.begin(),s1.end());//调转s1 reverse(s2.begin(),s2.end());//调转s2 if(s1.length()<s2.length()) swap(s1,s2);//s1始终为最长 for(int i=0;i<s1.length();i++) { i<s2.length() ? c+=s1[i]-'0'+s2[i]-'0':c+=s1[i]-'0';//对应位以及进位相加 result+=c%10+'0';//该位所得结果,拼接字符串 c/=10;//进位判断 } if(c==1) result+='1';//最终进位判断 reverse(result.begin(),result.end());//调转后的结果 cout<<result<<endl; } }