Calculate the sum of two integers a and b, but you are not allowed to use the operator +
and -
.
Example:
Given a = 1 and b = 2, return 3.
题目要求:计算两个整型的和,但是不能用+和-
我们知道a+b为((a&b)<<1)+(a^b),因此可以用递归的方法
class Solution { public: int getSum(int a, int b) { if (a == 0)return b; if (b == 0)return a; return getSum((a&b)<<1,a^b); } };