算法题(1): 如何不用加号,求两整数之和

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

 - a、b 分别为 32 位整数
 - 可以使用位运算符
class Solution {
public:
    /**
     * @param a: An integer
     * @param b: An integer
     * @return: The sum of a and b 
     */
    int aplusb(int a, int b) {
        if(b==0)
            return a;
        int sum = a^b;
        int i=(a&b)<<1;
        return aplusb(sum,i);
    }
    /**
     * sum为和,i为进位
     */
};
posted @ 2019-08-23 18:42  leafs99  阅读(320)  评论(0编辑  收藏  举报