Problem

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

Example 1:

Input: a = 1, b = 2
Output: 3
Example 2:

Input: a = -2, b = 3
Output: 1

Solution

class Solution {
    public int getSum(int a, int b) {
    //save 1-1 digits to carry
    //save different digit to a
    //left shift carry, save it to b, 
    //so carry is added to a, and got recalculated in the next while loop 
        while (b != 0) {
            int carry = a & b;
            a = a ^ b;
            b = carry << 1;
        }
        return a;
    }
}

linspiration
161 声望53 粉丝