Kimi    LeetCode 29. 两数相除 C语言实现
LeetCode 29. 两数相除 — C 语言实现核心思路倍增法位移模拟#includelimits.hintdivide(intdividend,intdivisor){// 唯一溢出情况-2^31 / -1 2^31超出 32 位有符号整数范围if(dividendINT_MINdivisor-1){returnINT_MAX;}// 判断结果符号两数符号不同则为负intnegative(dividend0)!(divisor0);// 转为 long long 并取绝对值// C 中 abs(INT_MIN) 会溢出必须用 64 位整数longlongdvddividend;longlongdvsdivisor;if(dvd0)dvd-dvd;if(dvs0)dvs-dvs;longlongresult0;while(dvddvs){longlongtempdvs;longlongmultiple1;// 内层循环除数不断左移翻倍×2直到超过被除数// temp 1 等价于 temp * 2符合不用乘法的要求while(dvd(temp1)){temp1;multiple1;}// 减去已逼近的值累加对应商dvd-temp;resultmultiple;}// 还原符号if(negative){result-result;}// 截断到 32 位有符号整数范围if(resultINT_MAX)returnINT_MAX;if(resultINT_MIN)returnINT_MIN;return(int)result;}执行流程图解以divide(10, 3)为例轮次 dvd剩余 temp当前除数倍数 multiple当前商倍数 result累计商初始 10 — — 0第1轮 10 → 1 3 → 6 → 12停→ 回退到 6 1 → 2 → 4停→ 回退到 2 0 2 2第2轮 1 3 1内层不执行 1 2 0 2循环结束最终result 3余数dvd 1。复杂度分析指标 复杂度 说明时间 O(log²N) 外层循环 O(log N)内层倍增 O(log N)空间 O(1) 仅使用常数变量C 语言特有关键点为什么必须用long longC 标准库abs(INT_MIN)的行为是未定义UB因为|−2^31| 2^31超出了int正数范围。必须先用long long承接再取相反数。符号判断技巧(dividend 0) ! (divisor 0)比写四个if分支更简洁两数符号不同则为1结果为负。位移与乘法temp 1等价于temp * 2multiple 1等价于multiple * 2。题目禁止*运算符但位运算是允许的。最后的截断虽然本题只有INT_MIN / -1一种溢出情况已在开头处理但末尾保留截断逻辑可防御其他边界问题使代码更健壮。

相关新闻

MySQL Docker部署全解析:从数据持久化到生产实践

MySQL Docker部署全解析:从数据持久化到生产实践

在技术交流群里看到一句话:“MySQL不能用Docker部署。”紧接着就有几个人附和,有人说数据会丢,有人说性能太差,还有人甩出一句“生产环境别用容器跑数据库”。我当时第一反应是:这个结论太绝对了,甚至有点误…

2026/9/2 6:23:31 阅读更多 →
基于SpringBoot的养老服务平台设计与实现(毕业设计项目源码+文档)

基于SpringBoot的养老服务平台设计与实现(毕业设计项目源码+文档)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/9/1 5:37:31 阅读更多 →
openEuler 22.03 LTS SP3离线升级包制作与使用全攻略

openEuler 22.03 LTS SP3离线升级包制作与使用全攻略

简介:openEuler 22.03 LTS SP1 用户在离线或内网环境下完成到 SP3 的升级,往往受制于依赖包缺失与联网限制。这套离线升级包正是为此封装,面向系统管理员和运维工程师,已由作者在新装 SP1 系统上验证通过,依赖关系提前…

2026/9/1 5:37:31 阅读更多 →

最新新闻

你写的PyTorch代码为什么能“边写边跑”?读懂这3个核心设计,才算真正掌握动态图

你写的PyTorch代码为什么能“边写边跑”?读懂这3个核心设计,才算真正掌握动态图

你写的PyTorch代码为什么能“边写边跑”?读懂这3个核心设计,才算真正掌握动态图一句话先睹为快:PyTorch不是又一个深度学习框架,而是一场以“Python优先、动态执行”为核心的建模范式革命——以Tensor为数据载体、以Autograd为自动…

2026/9/2 8:15:40 阅读更多 →
2026年7月银川市新房价格深度分析报告

2026年7月银川市新房价格深度分析报告

一、报告背景与数据说明本报告基于2026年7月银川市新房实际成交案例,结合市场公开数据,对银川市新房价格走势、区域分化、产品结构及未来趋势进行深度分析。报告数据来源包括银川市住房和城乡建设局网签备案数据、主要房企成交台账及第三方机构监测样本&…

2026/9/2 8:15:40 阅读更多 →
2026年7月乌鲁木齐市新房价格深度分析报告

2026年7月乌鲁木齐市新房价格深度分析报告

一、报告背景与数据说明本报告基于2026年7月乌鲁木齐市新房实际成交案例,结合市场公开数据与成交备案信息,对当前新房价格走势、区域分化特征及未来趋势进行深度分析。报告数据来源包括:乌鲁木齐市住房保障和房产管理局备案数据、主要房企网签…

2026/9/2 8:15:40 阅读更多 →
达梦8-License授权更新

达梦8-License授权更新

替换达梦bin目录的dm.key(新证书)cd /data/dameng8/app/bin mv dm.key dm.key.originmv dmEB01108787_2.key dm.key chown dmdba.dinstall dm.keyCLI登陆数据库# ./disql disql V8 用户名:SYSDBA 密码:服务器[LOCALHOST:5236]:处于主库打开状态 登录使用时间 : 3.141(ms) 上次登…

2026/9/2 8:15:40 阅读更多 →
达梦数据库授权Key操作流程

达梦数据库授权Key操作流程

授权文件名称:在达梦数据库的产品光盘里面,有个授权文件,文件名称为dm.key或是dm 一串数字 .key,后缀为.key。1. 查询当前授权信息使用达梦数据库的管理工具manager或是disql工具登录,查询当前数据库的授权信息。查询…

2026/9/2 8:15:40 阅读更多 →
训练微型鸭找针:小目标检测从数据集到Qt部署实战

训练微型鸭找针:小目标检测从数据集到Qt部署实战

最近看到一个很有意思的梗: 托马斯沃尔夫自嘲成梗 。这位美国作家曾说过一句著名自嘲——“我训练了一只微型鸭,让它去大海里捞针”。放在文学语境里,这明显是在调侃自己作品精力分散、找不准重点,但放在 AI 和深度学习领域&…

2026/9/2 8:14:40 阅读更多 →

日新闻

QEMU为什么能模拟不同CPU?从ISA、CPU模型到指令翻译讲起

QEMU为什么能模拟不同CPU?从ISA、CPU模型到指令翻译讲起

1. 引言:一个软件为何能“伪装”成不同CPUQEMU 是一款广为人知的开源模拟器,它既能在一台 x86 电脑上运行 ARM 系统,也能在 ARM 开发板上启动 x86 的 Linux 发行版。很多人第一次接触 QEMU 时都会好奇:一个纯软件程序,…

2026/9/2 0:00:30 阅读更多 →
单片机计算机毕设之基于 STM32 或 51 单片机的感知式智能垃圾桶硬件控制系统设计 基于 STM32 或 51 单片机的安全防护型智能垃圾桶装置设计(025005)

单片机计算机毕设之基于 STM32 或 51 单片机的感知式智能垃圾桶硬件控制系统设计 基于 STM32 或 51 单片机的安全防护型智能垃圾桶装置设计(025005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:00:30 阅读更多 →
单片机计算机毕设之基于 ESP8266 的智能垃圾分类桶 APP 监控系统设计与实现 基于单片机的超声波满溢检测垃圾分类装置设计(025105)

单片机计算机毕设之基于 ESP8266 的智能垃圾分类桶 APP 监控系统设计与实现 基于单片机的超声波满溢检测垃圾分类装置设计(025105)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:00:30 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/1 19:44:48 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/1 18:13:19 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/2 1:01:37 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/2 1:06:24 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/2 1:01:13 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/2 2:01:56 阅读更多 →