C++:
class Solution {
public:
/**
* @param a: An integer
* @param b: An integer
* @return: The sum of a and b
*/
int aplusb(int a, int b) {
// write your code here
int sum_1 = 0;
int carry = 0;
if(a==0){
return b;
}
else if(b==0){
return a;
}
else
{
sum_1 = a^b; //异或操作,没有进位的和
carry = (a&b)<<1; //进位位
return aplusb(sum_1,carry); //知道进位位为0,递归结束
}
}
};
Py3:
class Solution:
"""
@param a: An integer
@param b: An integer
@return: The sum of a and b
"""
def aplusb(self, a, b):
# write your code here
if a==0:
return b
elif b==0:
return a
sum_ = a^b
carry_ = (a&b)<<1
return Solution().aplusb(sum_,carry_)