xor 异或相当于不进位相加a^b。
& 只有都为1即进位的时候才是1,可以利用这个性质,(a&b)<<1表示进位
(a^b+(a&b)<<1)相当于最后结果,但是这个值也可能会进位所以递归调用getSum;
1 class Solution { 2 public: 3 int getSum(int a, int b) { 4 int ok=a^b; 5 int f=(a&b)<<1; 6 if(f==0)return ok; 7 return getSum(ok,f); 8 } 9 };