import java.util.*;

public class UnusualAdd {
    public int addAB(int A, int B) {

        int C = 0;
        while (B != 0) {
            C = A ^ B;
            B = (A & B) << 1;
            A = C;
        }

        return A;
    }
}

思路:不能用 + ,那么就要考虑二进制加的本质,是 无相位相加和位运算

1.当不考虑 位运算时,a + b = a^ b

2.如 无 进位 时 直接返回,有位运算 << 进位 1 ,赋值后重新计算即可