当前位置:网站首页>剑指 Offer II 001. 整数除法
剑指 Offer II 001. 整数除法
2022-08-03 05:25:00 【花开花落夏】
题目
给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。
注意:
整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/xoh6Oh
解题
class Solution {
public int divide(int a, int b) {
boolean isNegative = true;
int result = 0;
if(a==0){
return 0;
}
if(b==Integer.MIN_VALUE){
return a==Integer.MIN_VALUE?1:0;
}
if((a>0&&b>0)||(a<0&&b<0)){
isNegative = false;
}
if(a==Integer.MIN_VALUE){
if(b==-1){
return Integer.MAX_VALUE;
}else{
a+=Math.abs(b);
result++;
}
}
a=a>0?a:-a;
b=b>0?b:-b;
for(int i=31;i>=0;i--){
if((a>>i)>=b){
a-=b<<i;
result+=1<<i;
}
}
return isNegative?-result:result;
}
}

边栏推荐
猜你喜欢
随机推荐
五、int和Integer有什么区别?
自监督论文阅读笔记: MoCoV2使用动量对比学习改进基线
对象の使用
SQLMAP介绍及使用
三分钟看懂二极管的所有基础知识点
Phase Vocoder的补充完善,Matlab音频变速不变调、变调不变速
Convolutional Nerual Nertwork(CNN)
稳压二极管的工作原理及稳压二极管使用电路图
Windos 内网渗透之Token的使用
opencv目标检测
增强光学系统设计 | Zemax 全新 22.2 版本产品现已发布!
极光推送 能否缓存 消息
VS2022 encapsulation under Windows dynamic library and dynamic library calls
MATLAB给多组条形图添加误差棒
神经网络基础
【七夕特效】 -- 满屏爱心
快速的将结构体各成员清零
VSCODE 常见问题
各种cms getshell技巧
IPC通信 - 管道









