码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-05 01:14:16      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:code   代码   pid   符号   16px   interview   rac   nbsp   相加   

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


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

 

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

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

举例:

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】不用加减乘除做加法

标签:code   代码   pid   符号   16px   interview   rac   nbsp   相加   

原文地址:https://www.cnblogs.com/Asumi/p/12417121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!