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 };

 

posted @ 2016-07-21 09:11  HYDhyd  阅读(121)  评论(0编辑  收藏  举报