不使用运算符 + 和 - ,计算两整数 a 、b 之和。

示例 1:

输入: a = 1, b = 2
输出: 3

示例 2:

输入: a = -2, b = 3
输出: 1

方法一:递归

public static int getSum1(int a, int b) {
		if ((a & b) != 0) { // 判断是否有进位
			return getSum1(a ^ b, (a & b) << 1); // 不进位和进位相加
		} else {
			return a | b; // 不进位方式相加(此处返回a ^ b亦可)
		}
	}

方法二:迭代

public static int getSum2(int a, int b) {
		while (a != 0) {
			int forward = (a & b) << 1; // 进位
			b = a ^ b; // 不进位求和
			a = forward; // 保存进位用于下次运算
		}
		return b;
	}