原題鏈接:Sum of Two Integers
分析:實現加號運算符,採用的是位操作,分三步:
第一步a^b得到一個值res
第二步(a&b)<<1得到一個值表示進位
第三步,如果有進位表示res還需要加上進位的值,否則res就是最終結果,注意res加上進位值也有可能有進位,所以遞歸getSum()操作。
題解:
class Solution {
public:
int getSum(int a, int b) {
/*
Time Complexity:O(1)
Space Complexity:O(1)
*/
int res=a^b;
int tmp=(a&b)<<1;
if(tmp!=0)return getSum(res,tmp);
return res;
}
};