剑指 Offer 65. 不用加减乘除做加法(位运算,Java)
Posted Kapo1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 65. 不用加减乘除做加法(位运算,Java)相关的知识,希望对你有一定的参考价值。
题目
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。
示例:
输入: a = 1, b = 1
输出: 2
提示:
a, b 均可能是负数或 0
结果不会溢出 32 位整数
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
需要注意的地方
- 题目中要求,不能使用"+"、"-"、"*"、"/"四则运算符号,所以尝试使用位运算来解决
- 位运算不仅可以实现加法,减法、乘法、除法都可以使用位运算解决,可以参考这篇文章只用位运算来实现整数的加减乘除四则运算
题解
class Solution {
public int add(int a, int b) {
if(b == 0) {
return a;
}
int sum = a ^ b;
int up = (a & b) << 1;
return add(sum, up);
}
}
以上是关于剑指 Offer 65. 不用加减乘除做加法(位运算,Java)的主要内容,如果未能解决你的问题,请参考以下文章