剑指offer面试题47 不用加减乘除做加法 (java实现)
来源:互联网 发布:mysql建立数据库教程 编辑:程序博客网 时间:2024/06/06 04:32
解题思路:
1.不考虑进位,对每一位进行相加。0+0,1+1的结果都是0,0+1,1+0的结果都是1,和异或的结果一样,因此可以使用异或;
2.考虑第二步进位,0+0,0+1,1+0都不会产生进位,1+1会产生一个进位,此时可以看成是两个数先做位与运算,然后在向左移动一位;
3.把前两个步骤的结果相加,第三步相加的结果依然是重复前两步,直到不产生进位为止。
public class Solution {public int Add(int num1, int num2) {int sum , carry;do {//1.不考虑进位,对每一位相加,这和异或的结果相同sum = num1 ^ num2;//两个数先做位与运算,然后再向左移动一位,求出哪几位需要进位carry = (num1 & num2) << 1;num1 = sum;num2 = carry;} while (num2 != 0);return sum;}}
阅读全文
0 0
- 剑指offer面试题47 不用加减乘除做加法 (java实现)
- 剑指Offer面试题47:不用加减乘除做加法 Java实现
- 剑指Offer面试题47(Java版):不用加减乘除做加法
- [剑指offer][面试题47]不用加减乘除做加法
- 剑指Offer:面试题47 不用加减乘除做加法
- 剑指offer 面试题47—不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 剑指offer-面试题47:不用加减乘除做加法
- 剑指offer之面试题47不用加减乘除做加法
- 剑指offer--面试题47:不用加减乘除做加法
- 剑指Offer系列-面试题47:不用加减乘除做加法
- 【面试题】剑指Offer-47-不用加减乘除做加法
- 剑指offer-面试题47-不用加减乘除做加法
- 剑指offer 面试题47 不用加减乘除做加法
- 【剑指Offer】面试题47:不用加减乘除做加法
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 【剑指offer】面试题65:不用加减乘除做加法
- 面试题47:不用加减乘除做加法
- MVC5中使用jQuery Post 二维数组和一维数组到Action
- java当中randomAccessFile文件随机读取对象的简单使用
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- 【poj1201】Intervals
- B
- 剑指offer面试题47 不用加减乘除做加法 (java实现)
- 异构数据源海量数据交换工具-Taobao DataX 下载和使用
- uva508 莫尔斯电码(Morse Mismatches)
- Redis的安装、部署及使用
- jQuery——操作DOM
- list图解
- Codeforces Round #424 Div. 2专题
- Spring中的五种事物配置类型
- 华为OJ——从单向链表中删除指定值的节点