leetcode [371] 两整数之和
Contact me:
Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
class Solution {
public:
int getSum(int a, int b) {
int ans = 0;
bool flag = false;
for (int i = 0; i < 32; ++i) {
int aa = a & (1 << i);
int bb = b & (1 << i);
if (aa & bb) {
if (flag) {
ans |= 1 << i;
}
flag = true;
}
else if (aa ^ bb) {
if (!flag) {
ans |= 1 << i;
} else {
flag = true;
}
} else if (flag) {
ans |= 1 << i;
flag = false;
}
}
return ans;
}
};