首页 > 其他 > 详细

剑指offer-面试题65-不用加减乘除做加法-位运算

时间:2020-01-02 21:39:05      阅读:95      评论:0      收藏:0      [点我收藏+]
/*
题目:
    在不使用加减乘除的前提下,计算两个整数之和。
思路:
    不能使用加减乘除则只能考虑位运算。
    x=num1^num2,则为抹掉进位的结果。
	y=num1&num2,为只有进位的结果。
	(y<<1)&x,直到不产生进位。
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>

using namespace std;

int Add(int num1, int num2)
{
    int x = num1 ^ num2;
    int y = num1 & num2;
    while(y != 0){
        int temp = x ^ (y << 1);
        y = x & (y << 1);
        x = temp;
    }
    return x;
}
int main(){
   cout<<Add(5,17);
}

   

剑指offer-面试题65-不用加减乘除做加法-位运算

原文:https://www.cnblogs.com/buaaZhhx/p/12141662.html

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