剑指offer--不用加减乘除做加法
思路:
首先看十进制是如何做的: 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--不用加减乘除做加法相关推荐
- 剑指offer不用加减乘除做加法_剑指Offer-不用加减乘除做加法
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路 思路一: 位运算 思路二: 递归 思路三: 调用Integer的sum方法 思路四: 自增自减 代码实现 ...
- 剑指offer: 不用加减乘除做加法
题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路分析: 由于不能直接使用四则运算,想到可以用位运算来解决.首先用异或运算可以求得未进位的相加和,即a^b ...
- 剑指Offer——不用加减乘除做加法
1.题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计算进位 ...
- 剑指offer47 不用加减乘除做加法
自己写的 class Solution { public:int Add(int num1, int num2){int a = num1 ^ num2;int b = (num1 & num ...
- java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法
本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...
- 【LeetCode】剑指 Offer 65. 不用加减乘除做加法
[LeetCode]剑指 Offer 65. 不用加减乘除做加法 文章目录 [LeetCode]剑指 Offer 65. 不用加减乘除做加法 一.位运算 一.位运算 本题考察对位运算的灵活使用,即使用 ...
- 剑指offer——面试题47:不用加减乘除做加法
剑指offer--面试题47:不用加减乘除做加法 Solution1: 学习之 书上的思路就很好啊~ class Solution {public:int Add(int num1, int num2 ...
- 剑指 Offer 65. 不用加减乘除做加法(位运算、递归、迭代)
一.题目 剑指 Offer 65. 不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*" ...
- 0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法 描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"." ...
最新文章
- 蚂蚁的金融交易系统架构
- 【vue】webpack打包vue项目并且运行在Tomcat里面
- 社交系统ThinkSNS-plus(TS+)V1.0发布!
- 理论基础 —— 二叉树 —— 哈夫曼树与哈夫曼编码
- vb6 word 2002 合并单元格_Word制作公司人员登记表,方法简单,新手练习表格,一起来学吧...
- linux之lsof使用技巧
- java 字符串长度_ava练习实例:java字符串长度与Java String charAt() 方法 (建议收藏)...
- 算法高级(45)-阿尔法狗到底有多厉害?
- 前后端通信:WebSocket之实时监控
- 学习笔记:使用requests+Beautiful4爬取优美图库
- 将两个android项目整合,并在父项目中使用子项目的功能
- 贾其萃 : 笃行实践 筑梦扬帆 | 提升之路系列(二)
- npm ERR Error while executing: npm ERR C:\Program Files\Git\cmd\git.EXE ls-remote -h -t ssh://git@
- 公式编辑器mathpix下载及使用简介
- [OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ∗原文翻译(注释版)
- 【生物信息学-单细胞】基因转录调控网络转录因子调控网络分析
- SYSBIOS学习笔记---硬件中断(HWI)的创建
- java面经(2019京东笔试+三面)
- 万答#14,xtrabackup8.0怎么恢复单表
- java 图片类型判断
热门文章
- vue中展示列表,类似formatter方法及在vue中点击页面信息事件
- python学习笔记(自定义库文件路径)
- innerHTML,innerText
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
- solaris 源代码
- 01.WPF中制作无边框窗体
- Comet, 下一代反向AJAX(即服务器推送技术- Server-side push)
- Day14作业 二、有两个List集合怎么取两个无重复的并集
- PHP-代码审计-XSS
- c语言 读取 文件大小,c – ifstream :: ifstream可以读取的最大文件大小是多少