另类加法 牛客网 程序员面试经典 C++ Python
-
题目描述
-
请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。
-
给定两个int A和B。请返回A+B的值
-
测试样例:
-
1,2
-
返回:3
C++
class UnusualAdd {
public:
//run:6ms memory:612k
int addAB(int A, int B) {
if (0 == A) return B;
if (0 == B) return A;
return addAB(A^B,(A&B)<<1);
}
};
Python
class UnusualAdd:
#run:46ms memory:5604k
def addAB(self, A, B):
if 0 == A: return B
if 0 == B: return A
return self.addAB(A^B,(A&B)<<1)