- 1.题目
- 2.思路
- 3.代码实现(Java)
给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。
示例 1:
输入:a = 1, b = 2
输出:3
示例 2:
输入:a = 2, b = 3
输出:5
提示:
-1000 <= a, b <= 1000
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sum-of-two-integers
(1)位运算_递归
(2)位运算_非递归
3.代码实现(Java)//思路1————位运算_递归
class Solution {
public int getSum(int a, int b) {
if (b == 0) {
return a;
}
int sum = a ^ b;
int carry = (a & b) << 1;
//递归计算 sum 与 carry 的和,直到 carry 为 0 时退出递归求和
return getSum(sum, carry);
}
}
//思路2————位运算_非递归
class Solution {
public int getSum(int a, int b) {
while (b != 0) {
int carry = (a & b) << 1;
a = a ^ b;
b = carry;
}
return a;
}
}



