字符加减问题

思路:很简单的问题!!!!!

结果我把字符加减给忘了!!!!写了一个多小时,每次关键时刻,网上就找不到靠谱的解释,只能慢慢从头捋一遍!

为了以后复习,插个眼!

字符类型加减在运算过程中是转换为整型的!!!!

cout<<'0'-----------------------输出:48

cout<<2+'0'--------------------输出:50

cout<<2+'0'-'0'-----------------输出:2【int型】

字符与数字作比较,比较的是ASCII码的值!!!

if(2+'0'-'0'<'2')cout<<"***"----------执行cout;

if(52+'0'-'0'<'2')cout<<"***"--------不执行cout;

 代码:

class Solution {
public:
string result;
char num='0';
void dealfun(string &s)
{
    reverse(s.begin(),s.end());
}
void addfun(string &a1,string &b1)
{
    for(int i=a1.size()-1;i>=0;i--)
    {
        if (a1[i] - '0' + b1[i] - '0' + num - '0'+'0' < '2')
        {
            result += a1[i] - '0' + b1[i] - '0' + num - '0'+'0';
            num = '0';
        }
        else if(a1[i] - '0' + b1[i] - '0' + num - '0'+'0' > '2')
        {
            result+='1';
            num='1';
        }
        else
        {
            result+='0';
            num='1';
        }
    }
    if(result[a1.size()-1]=='0')result.pop_back();
    dealfun(result);
}
    string addBinary(string a, string b) {
        int num=a.size()>=b.size()?a.size():b.size();
        num=num+1;
        string a1=a;string b1=b;
        dealfun(a1);dealfun(b1);
        for(int i=1;i<=num-a.size();i++)a1+='0';
        for(int j=1;j<=num-b.size();j++)b1+='0';
        dealfun(a1);dealfun(b1);
        addfun(a1,b1);
        return result;
    }
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值