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

Posted buaazhhx

tags:

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

/*
题目:
    在不使用加减乘除的前提下,计算两个整数之和。
思路:
    不能使用加减乘除则只能考虑位运算。
    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-不用加减乘除做加法-位运算的主要内容,如果未能解决你的问题,请参考以下文章

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

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

剑指offer 面试65题

剑指 Offer 65. 不用加减乘除做加法(位运算,Java)

剑指 Offer 65. 不用加减乘除做加法(位运算,Java)

剑指 Offer 65. 不用加减乘除做加法(位运算,Java)