首页 > 其他 > 详细

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

时间:2020-03-05 01:06:43      阅读:87      评论:0      收藏:0      [点我收藏+]

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


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

 

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

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

举例:

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!