不使用运算符 +
和 -
???????,计算两整数 ???????a
、b
???????之和。
示例 1:
输入: a = 1, b = 2 输出: 3
示例 2:
输入: a = -2, b = 3 输出: 1
考察的是计算机组成原理的知识,经评论区提示,发现a^b得到的是没有进位的相加,a&b后左移一位得到的是对应位置的进位值,二者相加就相当于补充了进位值,得到正确结果
由于考察的是计算机组成原理相关的知识,所以需要一定的基础,代码反而是次要的。
代码如下:
class Solution { public int getSum(int a, int b) { return b==0?a:getSum(a^b,(a&b)<<1); } }
原文:https://www.cnblogs.com/axiangcoding/p/10473362.html