在做题中学习(34):两整数之和(不准用运算符+)

371. 两整数之和 - 力扣(LeetCode)在做题中学习(34):两整数之和(不准用运算符+)_第1张图片

思路:异或(两个数异或可看作无进位相加)

在做题中学习(34):两整数之和(不准用运算符+)_第2张图片

当进位b为全0的时候,那异或的结果就是真正相加的结果。

class Solution 
{
public:
    int getSum(int a, int b) 
    {
        while(b!=0)
        {
            int ret = a^b;
            int move = (a&b)<<1;
            a = ret;
            b = move;
        }
        return a;
    }
};



你可能感兴趣的:(学习,位运算,c++,算法)