题目描述:
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
解题思路:
- a^b 是取得两数无进位相加,a & b 是取得两数相加后的进位。
- 无进位相加与进位不断异或,直至进位为0
代码实现:
class Solution {
public int getSum(int a, int b) {
int sum;
while (true) {
sum = a ^ b;
int flag = (a & b) << 1;
if (flag == 0) {
break;
}
a = sum;
b = flag;
}
return sum;
}
}
本文介绍了一种不使用加减运算符计算两整数之和的方法。通过异或和与操作实现无进位相加及进位,不断迭代直至进位为0,最终得到两数之和。
6334

被折叠的 条评论
为什么被折叠?



