leetcode371

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 };
原文地址:https://www.cnblogs.com/thefirstfeeling/p/5690481.html