当前位置: 首页 > 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.gsyq.cn/news/80460.html

相关文章:

  • 2025年兰州餐桌椅生产商排行 - 2025年11月品牌推荐榜
  • 安装ROS环境
  • COSCon25 打卡实录| IvorySQL 开源集市互动 + 技术演讲,干货与趣味并存
  • 2025国产超级电容企业TOP5权威推荐:技术自主可控与全链 - 工业推荐榜
  • 详细介绍:linux系统学习(10.shell基础)
  • 2025 工业设计十大推荐:全链条服务赋能产品价值升级 - 品牌推荐排行榜
  • 2025年惠州靠谱养老院推荐!养老院服务哪家好? - 工业推荐榜
  • 灵芯派的系统检查
  • 衬衫面料供应商哪家好?2025综合实力榜单 - 栗子测评
  • 2025年度五大磁导航制造企业排行榜,看哪家产品性价比高 - myqiye
  • 2025年比较好的​ voc废气处理设备厂家选购全指南(完整版) - 行业平台推荐
  • 深南票据王
  • 2025年质量好的单极性脉冲电源厂家信誉综合榜(权威) - 行业平台推荐
  • 2025年实力强的商用音乐平台排行榜,诚信的商用音乐品牌企业 - 工业品牌热点
  • 铸铝门庭院门专用塑粉厂家哪家好?2025塑粉生产厂家盘点 - 栗子测评
  • 2025年苏州有实力的玻璃贴膜公司推荐:口碑好的玻璃贴膜品牌 - myqiye
  • 2025年中国十大HAST老化试验箱生产厂家推荐:H看哪家产 - mypinpai
  • 2025南通住宅装修风格TOP5推荐:田园复古、现代轻奢等风 - myqiye
  • 2025年南通装修报价方案排行榜,精准装修预算报价服务商推荐 - 工业品牌热点
  • 2025年度螺旋卸料离心机/卧式螺旋卸料沉降离心机实力厂家排 - mypinpai
  • sqlite 添加用户密码的方法
  • 从文档到示例代码:2025 中国开发者值得关注的生成式 AI 平台 - 品牌排行榜
  • 2025年矿物干燥剂厂家综合实力排行榜:权威测评与采购指南 - 2025年11月品牌推荐榜
  • 十大品牌背后的技术角力:解码全球激光三维扫描仪市场格局 - 匠子网络
  • 代码生产力革命:开发团队常用的主流代码生成 AI 工具盘点 - 品牌排行榜
  • 2025年口碑好的杆生产设备/钢杆生产设备TOP实力厂家推荐榜 - 品牌宣传支持者
  • 2025锡膏存储设备厂家推荐:多样需求适配指南 - 栗子测评
  • 软件成熟度模型-CMM
  • 2025年评价高的防渗PE布/HDPE布厂家最新权威推荐排行榜 - 品牌宣传支持者
  • 2025年口碑好的PE布高口碑厂家推荐(评价高) - 行业平台推荐