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

Posted asumi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer不用加减乘除做加法相关的知识,希望对你有一定的参考价值。

题目链接:不用加减乘除做加法


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

 

题解:计组里面有一个加法器。。用异或和与即可完成加法操作。异或求加法,与计算进位。

第一步:异或相加;第二步:计算进位值,位与;第三步,重复以上两步。

举例:

7 + 4 = 11

1、111 ^ 100 = 011   0111 & 0100 = 0100<<1 = 1000 有进位

2、0110 ^ 1000 = 1011 0011 & 1000 = 0000<<1= 0 无进位  得到结果1011

 

代码:

1 class Solution {
2 public:
3     int Add(int num1, int num2)
4     {
5         return num2 ? Add(num1 ^ num2,(num1 & num2) << 1) : num1;
6     }
7 };

 

以上是关于剑指offer不用加减乘除做加法的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

[剑指offer]面试题47:不用加减乘除做加法

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

剑指offer python版 不用加减乘除做加法