LeetCode 371. Sum of Two Integers

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

Example:
Given a = 1 and b = 2, return 3.

题目要求:计算两个整型的和,但是不能用+和-

我们知道a+b为((a&b)<<1)+(a^b),因此可以用递归的方法

class Solution {
public:
    int getSum(int a, int b) {
        if (a == 0)return b;
        if (b == 0)return a;
        return getSum((a&b)<<1,a^b);
    }
};
原文地址:https://www.cnblogs.com/csudanli/p/5891043.html