Skip to the content.

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;
    }
};