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

Posted fdwzy

tags:

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

用位运算模拟加法,num1+num2的加法结果可以分为两个部分,一部分为二进制位加法产生了进位的结果,另一部分是二进制位加法没产生进位的结果。

比如3+5,二进制011+101,产生进位的结果为最后一位1+1,进到倒数第二位,结果为010。没产生进位的是第1位0+1和第二位1+0,结果110。

 

 1 class Solution {
 2 public:
 3     int Add(int num1, int num2)
 4     {
 5         while(num1){//num1存加法的进位结果
 6             int temp=num2;
 7             num2=num1^num2;
 8             num1=(num1&temp)<<1;
 9         }
10         return num2;
11     }
12 };

 

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

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

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

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

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

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

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