参考@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;
}
}
京公网安备 11010502036488号