当前位置: 首页 > news >正文

剑指offer-48、不使⽤加减乘除实现加法

题⽬描述

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

示例1
输⼊:1,2
返回值:3

思路及解答

位运算迭代法(推荐)

将加法分解为「无进位和」+「进位值」,循环直到进位为0

位运算加法的数学原理

  • 异或运算 (^):实现无进位加法
    • 0^0=0, 0^1=1, 1^0=1, 1^1=0(进位丢失)
  • 与运算 (&):检测需要进位的位置
    • 只有1&1=1,其他情况都为0
  • 左移运算 (<<):将进位值移到正确位置
public class Solution {public int add(int a, int b) {// 循环直到进位为0while (b != 0) {// 计算无进位和:异或运算相当于无进位加法// 例如:5^3=6 (101^011=110)int sum = a ^ b;// 计算进位值:与运算后左移1位得到进位// 例如:(5&3)<<1=2 (101&011=001, 左移1位=010)int carry = (a & b) << 1;// 更新a为无进位和,b为进位值a = sum;b = carry;// 继续下一轮计算,直到进位为0}return a;}
}
  • 时间复杂度:O(1) - 最多循环32次(整数位数)
  • 空间复杂度:O(1) - 只使用常数空间

位运算递归法

将迭代过程转为递归调用,基础案例是进位为0

public class Solution {public int add(int a, int b) {// 递归终止条件:当进位为0时,直接返回无进位和if (b == 0) {return a;}// 递归过程:计算无进位和与进位值,继续递归相加return add(a ^ b, (a & b) << 1);}
}
  • 时间复杂度:O(1) - 递归深度最多32层
  • 空间复杂度:O(1) - 但递归栈有深度限制

递归案例:

add(2, 3)→ add(2^3, (2&3)<<1) = add(1, 2)→ add(1^2, (1&2)<<1) = add(3, 0)→ b=0, 返回3
最终结果:5

投机取巧

import java.util.concurrent.atomic.AtomicInteger;public class Solution {// 方法1:使用内置的加法方法public int add1(int a, int b) {return Integer.sum(a, b); // 内部实现还是用+,不符合要求}// 方法2:使用AtomicInteger(实际开发中更不实用)public int add2(int a, int b) {AtomicInteger ai = new AtomicInteger(a);return ai.addAndGet(b); // 内部使用CAS操作}// 方法3:使用BigDecimal(过度设计)public int add3(int a, int b) {// 需要创建对象,性能较差return BigDecimal.valueOf(a).add(BigDecimal.valueOf(b)).intValue();}
}
http://www.jsqmd.com/news/69902/

相关文章:

  • 兰州口碑餐桌椅品牌2025年推荐 - 2025年11月品牌推荐榜
  • 2025年评价高的断桥铝系统门窗最新品牌厂商榜(更新版) - 行业平台推荐
  • 2025年兰州餐桌椅生产商排行 - 2025年11月品牌推荐榜
  • 2025年12月兰州餐桌椅厂家综合推荐:5家实力厂商深度解析 - 2025年11月品牌推荐榜
  • 2025年比较好的门窗/定制系统门窗厂家综合口碑榜(用户信赖) - 品牌宣传支持者
  • 安装ROS环境
  • COSCon25 打卡实录| IvorySQL 开源集市互动 + 技术演讲,干货与趣味并存
  • 2025安阳市实力强的网络推广公司TOP5权威推荐:本地企业 - 工业品牌热点
  • 海泡石交货周期多久?哪家的交货速度快且品质好? - mypinpai
  • 深入解析:Node.js 开发实战:从入门到精通
  • 2025国产超级电容企业TOP5权威推荐:技术自主可控与全链 - 工业推荐榜
  • 2025年安阳五大互联网营销公司排行榜,安阳七彩祥云网络公司 - myqiye
  • 2025年知名的亚克力产品定制广告牌热门厂家排行TOP(权威版) - 品牌宣传支持者
  • LNMP拓展多台WEB——解决访问速度慢、单台故障导致业务down机、业务稳定运行
  • 多系统集成分析——ERP与OA、PLM、MES、CRM、WMS、SRM、HR
  • 详细介绍:linux系统学习(10.shell基础)
  • 2025 工业设计十大推荐:全链条服务赋能产品价值升级 - 品牌推荐排行榜
  • 2025年比较好的批量亚克力产品定制/亚克力产品定制广告牌优质厂商精选榜(口碑优) - 行业平台推荐
  • 2025年惠州靠谱养老院推荐!养老院服务哪家好? - 工业推荐榜
  • 2025年北京资产拍卖机构排行榜,兴业启航口碑怎样? - myqiye
  • 2025年短视频营销推广服务商五大推荐,看哪家服务性价比高 - 工业品牌热点
  • ERP也有库存管理、生产管理、流程审批,为什么还要上WMS、MES和OA?
  • 灵芯派的系统检查
  • 衬衫面料供应商哪家好?2025综合实力榜单 - 栗子测评
  • 2025年光颉电阻正规厂家推荐:国内五大光颉电阻制造商有哪些 - 工业推荐榜
  • 2025杭州出口退税代理公司特色盘点 - 栗子测评
  • 2025年度五大磁导航制造企业排行榜,看哪家产品性价比高 - myqiye
  • 2025年比较好的​ voc废气处理设备厂家选购全指南(完整版) - 行业平台推荐
  • 2025皮革皮套热压机厂家合集:认准实力塑料制品压合机厂家 - 栗子测评
  • 职业装衬衫定制厂家哪家好?2025综合榜单 - 栗子测评