371. 两整数之和
2023-02-18 16:34:58 时间
371. 两整数之和
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
解题思路
-
a ^ b
可以得到两数相加不进位的加法结果 -
(a & b) << 1
可以得到两数相加产生的进位
将不进位的加法结果与进位相加,即可得到两数相加的实际结果。需要注意的是:不进位加法结果与进位相加有可能再次造成进位,所以需要迭代处理,直到不再产生新的进位为止。
根据如上思路,可以比较容易地得到递归的解法:
递归
int getSum(int a, int b) {
if(!(a&b))return a^b;
return getSum(a^b,(a&b)<<1);
}
迭代
int getSum(int a, int b) {
while (b) {
auto carry = ((unsigned int)(a & b)) << 1;
a ^= b;
b = carry;
}
return a;
}
相关文章
- 安卓项目五子棋代码详解(三)
- 安卓项目五子棋代码详解(二)
- 安卓项目五子棋代码详解(一)
- 3xx HTTP状态码的终极指南
- React报错之React.Children.only expected to receive single React element child
- React报错之Element type is invalid
- React报错之Too many re-renders
- React报错之Function components cannot have string refs
- 如何发布一个 TypeScript 编写的 npm 包
- 如何使用zx编写shell脚本
- 13个构建RESTful API的最佳实践
- 什么是REST API
- React报错之Rendered more hooks than during the previous render
- 如何使用CSS伪类选择器
- React报错之Property 'value' does not exist on type EventTarget
- React报错之Parameter 'event' implicitly has an 'any' type
- React报错之Parameter 'props' implicitly has an 'any' type
- React报错之Property 'value' does not exist on type 'HTMLElement'
- React报错之You provided a `checked` prop to a form field
- React报错之Invalid hook call