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

【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;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容