leetCode-371:Sum of Two Integers 发表于 2022-11-13 分类于 leetCode 问题描述给定两个整数,要求在不使用加减法的情况求两数之和。题目链接:**点我** 样例输入输出 输入:a = 1, b = 2; 输出:3 输入:a = 3, b = 4 输出:7 问题解法此题要求不能使用加减法,那就意味着需要使用位运算,使用半加器的思路,用与运算求出当前位的进位,用异或运算求出当前位相加后的值,由于进位需要向前移动一位和前一位的值进行运算,因此可以使用 (a & b) << 1 的值参与前一位的运算。代码如下 1234567891011class Solution { public int getSum(int a, int b) { while (b != 0) { int carry = (a & b) << 1; a = a ^ b; b = carry; } return a; }} 参考资料https://leetcode.cn/problems/sum-of-two-integers/solution/liang-zheng-shu-zhi-he-by-leetcode-solut-c1s3/