剑指offer-不用加减乘除做加法-java
2018-03-28 11:26
330 查看
题目描述:
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路解析:
按位进行异或运算,0+0,1+1,结果都是0;1+0,0+1,结果都是1;刚好是不进位状态的结果
按位进行与运算,会得到需要进位的位数,所以向左移一位。
再把加的结果和进位的结果,继续加和进位。
代码:public class Solution {
public int Add(int num1,int num2) {
int sum,carry;
do{
sum=num1^num2;
carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while(carry!=0);
return sum;
}
}
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路解析:
按位进行异或运算,0+0,1+1,结果都是0;1+0,0+1,结果都是1;刚好是不进位状态的结果
按位进行与运算,会得到需要进位的位数,所以向左移一位。
再把加的结果和进位的结果,继续加和进位。
代码:public class Solution {
public int Add(int num1,int num2) {
int sum,carry;
do{
sum=num1^num2;
carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}while(carry!=0);
return sum;
}
}
相关文章推荐
- [剑指Offer 47] 不用加减乘除做加法(Java)
- 【剑指offer-Java版】47不用加减乘除做加法
- 剑指Offer解题报告(Java版)——不用加减乘除做加法 47
- 剑指Offer面试题47:不用加减乘除做加法 Java实现
- 剑指Offer面试题47(Java版):不用加减乘除做加法
- 剑指offer 不用加减乘除做加法(位运算实现)
- 【剑指offer】不用加减乘除做加法
- 剑指offer——面试题:47不用加减乘除做加法
- 剑指offer-47:不用加减乘除做加法
- 剑指offer:不用加减乘除做加法
- 【剑指offer】之不用加减乘除做加法
- 剑指offer——面试题47:不用加减乘除做加法
- 【剑指offer】面试题65:不用加减乘除做加法
- 剑指offer——不用加减乘除做加法
- 不用加减乘除法做加法 剑指offer
- 剑指offer——49.不用加减乘除做加法
- (C++)剑指offer-48:不用加减乘除做加法(发散思维能力)
- 【剑指offer】题47:不用加减乘除做加法
- [剑指offer][面试题47]不用加减乘除做加法
- 【剑指offer 面试题47】不用加减乘除做加法