Description#
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:
Solutions#
Solution 1#
1
2
3
4
5
6
7
| class Solution:
def getSum(self, a: int, b: int) -> int:
a, b = a & 0xFFFFFFFF, b & 0xFFFFFFFF
while b:
carry = ((a & b) << 1) & 0xFFFFFFFF
a, b = a ^ b, carry
return a if a < 0x80000000 else ~(a ^ 0xFFFFFFFF)
|
1
2
3
4
5
| class Solution {
public int getSum(int a, int b) {
return b == 0 ? a : getSum(a ^ b, (a & b) << 1);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
| class Solution {
public:
int getSum(int a, int b) {
while (b) {
unsigned int carry = (unsigned int) (a & b) << 1;
a = a ^ b;
b = carry;
}
return a;
}
};
|
1
2
3
4
5
6
7
8
| func getSum(a int, b int) int {
for b != 0 {
s := a ^ b
b = (a & b) << 1
a = s
}
return a
}
|