美文网首页
【leetcode】 两整数之和, 不用+-号,如何实现两数相加

【leetcode】 两整数之和, 不用+-号,如何实现两数相加

作者: 程序员小2 | 来源:发表于2020-06-29 23:45 被阅读0次

    【leetcode】 两整数之和, 不用+-号,如何实现两数相加

    题目:

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

    示例 1:

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

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

    思路:

    a ^ b是无进位的相加; a&b得到每一位的进位;让无进位相加的结果与进位不断的异或, 直到进位为0;

    java代码:

    class Solution {
        int getSum(int a, int b) {
            while ((a & b) !=0) {
                int n = a;
                int m = b;
                a = n ^ m;
                b =  (n & m) << 1;
            }
            return a ^ b;
        }
    }
    

    相关文章

      网友评论

          本文标题:【leetcode】 两整数之和, 不用+-号,如何实现两数相加

          本文链接:https://www.haomeiwen.com/subject/hvvzfktx.html