1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| 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.
public int getSum(int a, int b) { if (a == 0) return b; if (b == 0) return a;
while (b != 0) { int carry = a & b; a = a ^ b; b = carry << 1; } return a; }
public int getSubtract(int a, int b) { while (b != 0) { int borrow = (~a) & b; a = a ^ b; b = borrow << 1; } return a; }
public int getSum(int a, int b) { return (b == 0) ? a : getSum(a ^ b, (a & b) << 1); }
public int getSubtract(int a, int b) { return (b == 0) ? a : getSubtract(a ^ b, (~a & b) << 1); }
|