剑指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. 不用加减乘除做加法(位运算,Java)