1. A + B 问题【简单】

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

思路:模拟二进制加法运算,^ 求得基位,&求得进位。不断循环,直至进位为0。

核心公式:a + b = (a ^ b) + (a & b << 1) 。

代码:

class Solution
{
    public:
        /*
         * @param : An integer
         * @param : An integer
         * @return: The sum of a and b
         */
        int aplusb(int a, int b)
        {
            // write your code here
            int aa;//基位 
            int bb;//进位 
            do
            {
                aa=a^b;
                bb=(a&b)<<1;
                a=aa;
                b=bb;
            }while(b!=0);
            return a;
        }
};

 

posted @ 2018-01-24 17:41  陈阿毛  阅读(166)  评论(0)    收藏  举报