思路:
      首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。 第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。 同样我们可以用三步走的方式计算二进制值相加: 5-101,7-111 第一步:相加各位的值,不算进位,得到010,二进制每位相加就相当于各位做异或操作,101^111。 第二步:计算进位值,得到1010,相当于各位做与操作得到101,再向左移一位得到1010,(101&111)<<1。 第三步重复上述两步, 各位相加 010^1010=1000,进位值为100=(010&1010)<<1。 继续重复上述两步:1000^100 = 1100,进位值为0,跳出循环,1100为最终结果。

class Solution {
public:int Add(int num1, int num2){int jingwei = 1;int sum = 0;while(jingwei){sum = num1^num2;jingwei = (num1&num2)<<1;num1 = sum;num2 = jingwei;}return sum;}
};

剑指offer--不用加减乘除做加法相关推荐

  1. 剑指offer不用加减乘除做加法_剑指Offer-不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路 思路一: 位运算 思路二: 递归 思路三: 调用Integer的sum方法 思路四: 自增自减 代码实现 ...

  2. 剑指offer: 不用加减乘除做加法

    题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路分析: 由于不能直接使用四则运算,想到可以用位运算来解决.首先用异或运算可以求得未进位的相加和,即a^b ...

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

    1.题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计算进位 ...

  4. 剑指offer47 不用加减乘除做加法

    自己写的 class Solution { public:int Add(int num1, int num2){int a = num1 ^ num2;int b = (num1 & num ...

  5. java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...

  6. 【LeetCode】剑指 Offer 65. 不用加减乘除做加法

    [LeetCode]剑指 Offer 65. 不用加减乘除做加法 文章目录 [LeetCode]剑指 Offer 65. 不用加减乘除做加法 一.位运算 一.位运算 本题考察对位运算的灵活使用,即使用 ...

  7. 剑指offer——面试题47:不用加减乘除做加法

    剑指offer--面试题47:不用加减乘除做加法 Solution1: 学习之 书上的思路就很好啊~ class Solution {public:int Add(int num1, int num2 ...

  8. 剑指 Offer 65. 不用加减乘除做加法(位运算、递归、迭代)

    一.题目 剑指 Offer 65. 不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*" ...

  9. 0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法

    剑指 Offer 65. 不用加减乘除做加法 描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"." ...

最新文章

  1. 蚂蚁的金融交易系统架构
  2. 【vue】webpack打包vue项目并且运行在Tomcat里面
  3. 社交系统ThinkSNS-plus(TS+)V1.0发布!
  4. 理论基础 —— 二叉树 —— 哈夫曼树与哈夫曼编码
  5. vb6 word 2002 合并单元格_Word制作公司人员登记表,方法简单,新手练习表格,一起来学吧...
  6. linux之lsof使用技巧
  7. java 字符串长度_ava练习实例:java字符串长度与Java String charAt() 方法 (建议收藏)...
  8. 算法高级(45)-阿尔法狗到底有多厉害?
  9. 前后端通信:WebSocket之实时监控
  10. 学习笔记:使用requests+Beautiful4爬取优美图库
  11. 将两个android项目整合,并在父项目中使用子项目的功能
  12. 贾其萃 : 笃行实践 筑梦扬帆 | 提升之路系列(二)
  13. npm ERR Error while executing: npm ERR C:\Program Files\Git\cmd\git.EXE ls-remote -h -t ssh://git@
  14. 公式编辑器mathpix下载及使用简介
  15. [OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ∗原文翻译(注释版)
  16. 【生物信息学-单细胞】基因转录调控网络转录因子调控网络分析
  17. SYSBIOS学习笔记---硬件中断(HWI)的创建
  18. java面经(2019京东笔试+三面)
  19. 万答#14,xtrabackup8.0怎么恢复单表
  20. java 图片类型判断

热门文章

  1. vue中展示列表,类似formatter方法及在vue中点击页面信息事件
  2. python学习笔记(自定义库文件路径)
  3. innerHTML,innerText
  4. ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
  5. solaris 源代码
  6. 01.WPF中制作无边框窗体
  7. Comet, 下一代反向AJAX(即服务器推送技术- Server-side push)
  8. Day14作业 二、有两个List集合怎么取两个无重复的并集
  9. PHP-代码审计-XSS
  10. c语言 读取 文件大小,c – ifstream :: ifstream可以读取的最大文件大小是多少