0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法
描述
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。
分析
a ^ b 等同于 a + b且不做进位(无进位和)。
(a & b) << 1等同于 a + b的进位(进位 )。
因此 a+b等于(a ^ b)+((a & b) << 1) ,但这个相加仍然存在进位,所以需要一直递归此过程,直到进位(a & b) << 1为0,此时的a ^ b便是 a+b的最终结果。
为什么进位一定会变为0? 我的理解是进位一直在不断的向左移动,因为相加数值的二进制的1的个数是有限的,相加不可能一直存在进位,所以进位一定会最终变为0,即不在存在进位,这时候的无进位和就是和。
class Solution {public int add(int a, int b) {int i = a ^ b;int j = (a & b) << 1;if(j == 0){return i;}return add(i,j);}
}
0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法相关推荐
- 剑指 Offer 65. 不用加减乘除做加法(位运算、递归、迭代)
一.题目 剑指 Offer 65. 不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*" ...
- java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法
本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...
- 【LeetCode】剑指 Offer 65. 不用加减乘除做加法
[LeetCode]剑指 Offer 65. 不用加减乘除做加法 文章目录 [LeetCode]剑指 Offer 65. 不用加减乘除做加法 一.位运算 一.位运算 本题考察对位运算的灵活使用,即使用 ...
- 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)
文章目录 题目描述 思路 & 代码 二刷 题目描述 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看. 思路 & 代码 正负数情况可以不考虑(补码) 核心:加法 = 进位和 + ...
- 剑指 Offer 65. 不用加减乘除做加法(位运算,计组原理:补码、加法器)
一.基础知识 做这题需要用到计算机组成原理的基础知识:二进制的表示以及加法器. 简要提下知识点,最好再去研究下来龙去脉,加深理解. (1)二进制加法 a b 非进位和s 进位c 0 0 0 0 0 1 ...
- 剑指 Offer 65. 不用加减乘除做加法
题目链接: 力扣https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/ [分析]对于两个二进制的加法,他们的本 ...
- leetcode每日一题第三十二天-剑指 Offer 65. 不用加减乘除做加法(easy??middle了吧)
前言 通过leetcode记录自己每天坚持刷题,以此监督自己的学习.不能放假了就懈怠
- 【剑指Offer】不用加减乘除做加法(异或:无进位的和 + 相与并左移1位:进位和)
这里写目录标题 题目描述 位运算(异或+相与并左移) 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 位运算(异或+相与并左移) 两个数异或:相当于不考虑进位 ...
- 剑指offer:不用加减乘除做加法
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 解题思路 class Solution { public:int Add(int num1, int num2 ...
最新文章
- JAVA min()_Java min()方法
- 【正一专栏】扶不上墙的大巴黎和自信过度的热刺
- python中列表的运用_python中列表的应用
- 计算机行业人员的鄙视链
- (史上最全)104个实用网络爬虫合集。
- 你犯了没?电脑最忌讳的18个小动作之三
- leetcode 81 Search in Rotated Sorted Array II ----- java
- (转)你真的会写单例模式吗——Java实现
- Oracle学习笔记:oracle的启动过程
- UILabel-IOS开发
- FFmpeg学习(9)—— 调整播放速度
- 文本区 JTextArea 的使用
- 【工具推荐】个人本地 markdown 知识图谱软件 Obsidian
- FMS飞行模拟器简介
- 尚硅谷数据结构与算法(Java)--14--插入排序
- DATAGUARD手记(DUPLICATE)(四)
- 一花独放不是春 远光软件区块链业务赚钱背后 链圈仍在过冬
- python 论文写作_AI基础:论文写作工具
- 网页中Html布局分解,因式分解怎么求
- 数字减影血管造影技术(DSA)