首页 > 其他分享 >【剑指 Offer】 65. 不用加减乘除做加法

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

时间:2023-04-12 10:24:44浏览次数:44  
标签:Offer int jia 异或 65 相当于 进位 加减乘除

【题目】

写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。

 

示例:

输入: a = 1, b = 1
输出: 2

 

提示:

    a, b 均可能是负数或 0
    结果不会溢出 32 位整数

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof

【思路】

^异或 相当于无进位的求和 &与 相当于求每位的进位数   先求两个数无进位的和,然后将进位信息保存到b中,依次将进位加到a上,直到没有进位的情况(b=0)   【代码】
class Solution {
    public int add(int a, int b) {
         int sum =a;
        //^异或 相当于无进位的求和
        //&与 相当于求每位的进位数
        while(b!=0){
            sum = a^b;
            b = (a&b)<<1;
            a = sum;
        }
    return sum;
    }
}

 

   

标签:Offer,int,jia,异或,65,相当于,进位,加减乘除
From: https://www.cnblogs.com/End1ess/p/17308875.html

相关文章

  • 哈希表:剑指 Offer 03. 数组中重复的数字
    题目描述:找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。   限制:2<=n<=100000 哈希表/Set利用数据......
  • 堆:剑指 Offer 41. 数据流中的中位数
    题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是3[2,3]的中位数是(2+3)/2=2.5设计一......
  • 【剑指 Offer】 15. 二进制中1的个数
    【题目】编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为'1'的个数(也被称为汉明重量).)。 提示:   请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是......
  • 高性能 Jsonpath 框架,Snack3 3.2.65 发布
    高性能Jsonpath框架,Snack33.2.65发布来源:投稿作者: 梅子酒好吃2023-04-1014:18:00 0Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代......
  • 65
    60、HashMap和Hashtable的区别(条理上还需要整理,也是先说相同点,再说不同点)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。HashMap允许将null作为一......
  • CNC工艺全铝外壳5G模组搭配R4S使用演示 RM500U FM650
    关键词:CNC工艺  USB3.0  typeC  全铝外壳  R4S  RK3399FM650  RM500U  5G  LTE  OpenWrt Mcuzone 野芯科技概述:CNC工艺全铝外壳5G模组在R4S上配置使用演示硬件平台:CNC工艺全铝外壳5G模组  R4S软件平台:OpenWrt系统镜像文件:FriendlyWrt_20201209_NanoPi-R......
  • 【剑指 Offer】 33. 二叉搜索树的后序遍历序列
    【题目】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:    5   /\  2  6 /\ 1  3示例1:输入:[1,6,3,2,5]输出:false示例2:输入:......
  • 剑指offer38(Java)-字符串的排列(中等)
    题目:输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","cba"] 限制:1<=s的长度<=8来源:力扣(LeetCode)链接:https://leetcode.cn/pr......
  • 用 Go 剑指 Offer 12. 矩阵中的路径
    给定一个 mxn二维字符网格 board和一个字符串单词 word。如果 word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例如,......
  • 用 Go 剑指 offer:面试题61. 扑克牌中的顺子
    从若干副扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为0,可以看成任意数字。A不能视为14。 示例 1:输入:[1,2,3,4,5]输出:True 示例 2:输入:[0,0,1,2,5]输出:True 限制:数组长度为5 数组的......