【剑指offer】不用加减乘除做加法

原创 2018年04月15日 15:34:21

题目描述

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



思路:

//step1:按位与是查看两个数哪些二进制位都为1,这些都是进位位,结果需左移一位,表示进位后的结果
//step2:异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接加、减,结果表示非进位位进行加操作后的结果
//step3:n1&n2是查看有没有进位位了,如果有,需要重复step1、step2;如果没有,保留n1、n2上二进制为1的部分,用或将之合为一个数,即为最后结果
# -*- coding:utf-8 -*-
class Solution:
    def Add(self, num1, num2):
        # write code here
        if not num1:
            return num2
        if not num2:
            return num1
        while num2 != 0:
            n1 = num1^num2
            n2 = (num1&num2)<<1
            num1 = n1&0xFFFFFFFF
            num2 = n2
        return num1 if num1>>31==0 else num1-4294967296

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111819/article/details/79949694

PPT吸金大法 20+万年薪工作总结不用愁

本教程主要讲解了office PowerPoint2016软件的安装、基本操作、图形图像处理技巧、幻灯片放映技巧、动画特效技巧等五大模块操作技巧。
  • 2017年02月21日 11:41

剑指Offer面试题47(Java版):不用加减乘除做加法

题目:写一个函数,求两个整数之和,要求在函数体内不得适用+,-,* ,./  四则运算符号 面试的时候被问道这个问题,首先我们分析人们是如何进行十进制的加法的,比如是如何得出5+17=22的结果的,...
  • jsqfengbao
  • jsqfengbao
  • 2015-08-11 20:49:22
  • 1252

剑指offer:不用加减乘除做加法(java)

题目:写一个函数,求两个整数之和,要求在函数体内不得适用+,-,* ,./  四则运算符号     面试的时候被问道这个问题,首先我们分析人们是如何进行十进制的加法的,比如如何得出5+17=22这个...
  • abc7845129630
  • abc7845129630
  • 2016-10-15 15:58:22
  • 1070

剑指offer--不用加减乘除做加法

题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 分类:数学 解法1: 考虑位运算,分三步: 第一步:不进位加 n1 第二步:计算进...
  • kangaroo835127729
  • kangaroo835127729
  • 2015-09-21 18:14:01
  • 1877

面试题42:不用加减乘除做加法

分析: (1)十进制加法分三步:(以5+17=22为例) 1. 只做各位相加不进位,此时相加结果为12(个位数5和7想家不进位是2,十位数0和1相加结果是1); 2. 做进位,5+7中有进位,进位的值...
  • htyurencaotang
  • htyurencaotang
  • 2013-09-05 13:31:34
  • 5034

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

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。...
  • Koala_Tree
  • Koala_Tree
  • 2018-03-28 16:29:16
  • 21

不用加减乘除做加法中Python存在的bug

今天在刷《剑指offer》的时候,在做面试题47的时候,碰到了一道题: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 题目本身也不太难,使用位的异或运算和 位与操...
  • u012505432
  • u012505432
  • 2016-07-13 22:33:57
  • 1602

Java实现不用加减乘除做加法

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号...
  • u014282557
  • u014282557
  • 2017-06-02 14:32:19
  • 601

用Java实现不用加减乘除做加法操作

面试题1:不用加减乘除,求两个整数的和。 import java.util.Scanner; public class GetSum { /** * 不用加减乘除做加法; *...
  • a018041762
  • a018041762
  • 2014-03-28 10:30:58
  • 3365

加法的实现-不用加减乘除运算

来源于一个笔试题目笔试面试题目都很有意思…. 笔试题如下: 不使用加减乘除,计算一个数字的7倍 位运算相信你第一个想到的方法就是位运算吧,没错,除了位运算,也没有其他办法了吧。...
  • makenothing
  • makenothing
  • 2016-10-22 23:52:46
  • 682
收藏助手
不良信息举报
您举报文章:【剑指offer】不用加减乘除做加法
举报原因:
原因补充:

(最多只允许输入30个字)