a+b字符串与数字互转

a+b

http://www.nowcoder.com/questionTerminal/4c39c984ea3848b48e111b8e71ec1dd4

参考@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;
    }
}
全部评论
老哥太厉害了!比王道上的方法好用多了!
点赞
送花
回复
分享
发布于 2022-03-05 16:40

相关推荐

14 1 评论
分享
牛客网
牛客企业服务