1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【LeetCode 剑指 Offer 65】不用加减乘除做加法

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

时间:2021-06-24 21:06:59

相关推荐

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

不用加减乘除做加法

/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。

思路分析

加法运算可以拆成无进位加法和有进位加法。

无进位加法的结果是a ^ b。

有进位加法的结果是(a & b) << 1。

b为0时,可以得出a + b的结果就是a,也是递归退出的条件。

代码

class Solution {public int add(int a, int b) {if (b == 0) {return a;}return add(a ^ b, (a & b) << 1);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。