leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

sum_two_integers.c (472B)


// 371. Sum of Two Integers
#include "leetcode.h"

/*
 * given two integers 'a' and 'b', return the sum of the two integers without
 * using the operators '+' and '-'.
 */

int getSum(int a, int b) {
  int trigger = a & b, ans = a ^ b;
  while (trigger) {
    int carry = (trigger & 0xFFFFFFFF) << 1;
    trigger = carry & ans;
    ans ^= carry;
  }
  return ans;
}

int main() {
  printf("%d\n", getSum(1, 2)); // expect: 3
  printf("%d\n", getSum(2, 3)); // expect: 5
}