371-两整数之和

2019-07-11  本文已影响0人  饮酒醉回忆

两整数之和

题目

不使用运算符+ 和-,计算两整数a、b之和。

示例 1:

输入: a = 1, b = 2
输出: 3
示例 2:

输入: a = -2, b = 3
输出: 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-two-integers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

不能使用加减,因此判断需要使用位运算来操作.两数相加,可以将两数先异或运算,如果没有相同的位数,则已经实现相加.如果有相同的位数,则需要将原有相同的位数进位.因此步骤需要先异或,然后与操作并向左移一位使之进位.最后直到没有相同的位数就结束

代码

class Solution {
    public int getSum(int a, int b) {
        while (b != 0){
            int temp = a ^ b;
            b = (a & b)<<1;
            a = temp;
        }
        return a;
    }
}
上一篇下一篇

猜你喜欢

热点阅读