剑指 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

需要注意的地方

  1. 题目中要求,不能使用"+"、"-"、"*"、"/"四则运算符号,所以尝试使用位运算来解决
  2. 位运算不仅可以实现加法,减法、乘法、除法都可以使用位运算解决,可以参考这篇文章只用位运算来实现整数的加减乘除四则运算

题解

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)的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 65. 不用加减乘除做加法

LeetCode-剑指Offer 65-不用加减乘除做加法

LeetCode-剑指Offer 65-不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法

LeetCode(剑指 Offer)- 65. 不用加减乘除做加法

LeetCode(剑指 Offer)- 65. 不用加减乘除做加法