muregii / codeKenya

10 stars 14 forks source link

Unexplained Leetcode question #19

Open muregii opened 6 months ago

muregii commented 6 months ago

Given two integers a and b, return the sum of the two integers without using the operators + and -.

Example 1:

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

Input: a = 2, b = 3 Output: 5

Constraints:

-1000 <= a, b <= 1000

Screenshot 2023-12-15 at 8 42 45 PM

Does anyone understand and explain what's happening here?

muregii commented 6 months ago

while(b != 0)

means that we won't have to enter the loop if one of the values, b, is zero. Any number plus Zero is just the same number, so we return a immediately. This is the easiest case.

muregii commented 6 months ago

What about (a & b) ?

And further, why is carry, = (a & b) << 1?