题目:给你两个整数
a
和b
,不使用 运算符+
和-
,计算并返回两整数之和。示例 1:
输入:a = 1, b = 2 输出:3示例 2:
输入:a = 2, b = 3 输出:5
public class 两整数之和 {
public static void main(String[] args) {
int a = 1, b = 2;
System.out.println(getSum(a,b));
}
public static int getSum(int a, int b) {
if(b==0) return a;
else {
return getSum((a ^ b),(a & b) << 1);
}
}
}
位运算的加法是用(两数的异或的结果)再加上(两数与之后左移一位)得到最后的结果。递归调用停止的标志是(两数与之后左移一位)的结果为0,其实就是进位的结果是0。