371. Sum of Two Integers

古城微笑少年丶 2022-03-26 10:55 258阅读 0赞

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

Example 1:

  1. Input: a = 1, b = 2
  2. Output: 3

Example 2:

  1. Input: a = -2, b = 3
  2. Output: 1
  3. 异或运算(^)是不进位加法,找到进位,将其和异或的结果加起来即可。进位通过与运算(&)并左移一位得到。异或(^)的结果和进位的相加,还是要调用getSum这个函数。代码如下:
  4. class Solution {
  5. public:
  6. int getSum(int a, int b) {
  7. if (b == 0) return a;
  8. int sum = a ^ b;
  9. int carry = (a & b) << 1;
  10. return getSum(sum, carry);
  11. }
  12. };

发表评论

表情:
评论列表 (有 0 条评论,258人围观)

还没有评论,来说两句吧...

相关阅读