求俩个数的和,要求不能用加减乘除四则运算。
2017-09-26 09:39
225 查看
本题源自剑指offer
------------------------------------------------------------------------------
既然不能用四则运算,因此我们就想用位运算来求解。
1 我们先对数进行异或,(不考虑进位)
2 然后为俩个数进行与运算,再左移一位,(考虑进位)
3对前面的运算结果相加,即重复前俩步直到与运算的结果为0
int Add(int num1, int num2)
{
do{
int sum=num1^num2;
int carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while(num2!=0);
return num1;
}
------------------------------------------------------------------------------
既然不能用四则运算,因此我们就想用位运算来求解。
1 我们先对数进行异或,(不考虑进位)
2 然后为俩个数进行与运算,再左移一位,(考虑进位)
3对前面的运算结果相加,即重复前俩步直到与运算的结果为0
int Add(int num1, int num2)
{
do{
int sum=num1^num2;
int carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while(num2!=0);
return num1;
}
相关文章推荐
- 用位运算实现四则运算之加减乘除
- 用位运算实现四则运算之加减乘除
- 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
- 剑指Offer面试题47不用加减乘除做加法(位运算),面试题48不能被继承的类(final)
- 《剑指offer》-求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
- 《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
- asp.net(c#)复数类(复数加减乘除四则运算)
- 从扑克牌种任取4张,通过加减乘除四则运算得到数字24
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- 位操作实现加减乘除四则运算
- 实现一个Add函数,让两个数相加,但是不能使用+、-、*、/等四则运算符。ps:也不能用++、--等等
- 软件工程第一个程序:像阿超那样,花20分钟写一个能自动生成小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。
- 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
- 按照Right-BICEP要求设计四则运算3程序的单元测试用例
- 一个非常酷的Js计算器(加减乘除,浮点,以及括号运算,四则混合运算)
- 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- asp.net(c#)复数类(复数加减乘除四则运算)
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- poj 1348 Computing (四个数的加减乘除四则运算)