不用乘法,除法和mod运算符来分两个整数。 如果溢出,则返回MAX_INT。
来源:互联网 发布:淘宝那家动漫海报好 编辑:程序博客网 时间:2024/05/29 04:33
本题源自leetcode 29
------------------------------------------------------
思路: 1 先判断溢出条件 1除数为0 2 被除数最小,切除数是-1
2 求除数和被除数是否同号
3 取 绝对值。除法运算相当于减法运算。每次,将除数左移 1位 相当于乘以 2.。减少做减法的次数。
代码:
int divide(int dividend, int divisor) { if(!divisor || (dividend == INT_MIN && divisor == -1)) return INT_MAX; int sign = ((divisor < 0) ^ (dividend < 0)) ? -1 : 1; long long dvd = labs(dividend); long long dvi = labs(divisor); int res = 0; while(dvd >= dvi){ long long tmp = dvi; int count = 1; while(dvd >= (tmp << 1)){ tmp = tmp << 1; count = count << 1; } dvd -= tmp; res += count; } return sign*res; }
阅读全文
0 0
- 不用乘法,除法和mod运算符来分两个整数。 如果溢出,则返回MAX_INT。
- 不用乘法、除法及取模运算,构造两个整数的除法
- 不用'*','/','mod'进行除法运算
- 大整数乘法和除法
- 不用/,*,mod乘、除、取模运算的除法
- 不用库函数求两个数除法运算
- 实现整数的乘法,减法和除法运算。只允许使用加号
- Java模拟两个大整数的加法、乘法、除法
- 判断两个有符号整数的加法和乘法是否溢出
- 不用‘/’ 实现除法运算
- 不用除法运算
- 9.7数学与概率(二)——实现整数的乘法、减法和除法运算,只允许使用加号
- 程序员面试金典: 9.7位操作 7.4只用加号实现整数的乘法、减法和除法运算
- C语言基础 两个整数做除法运算
- 完成整数除法运算
- 大数 (整数)乘法,除法
- 给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数
- 大整数的加法和乘法运算
- 史上最全的机器学习资料
- 意见征集,世界AI智商评测量标准2018年新版讨论方案
- 史上最全的机器学习资料
- 自己实现的简单的set
- 温习表分区
- 不用乘法,除法和mod运算符来分两个整数。 如果溢出,则返回MAX_INT。
- 史上最全的物联网资料
- 公众号jssdk绑定域名,jssdk微信授权
- Java中的静态导入
- 划分聚类分析: K均值和基于中心点的划分(PAM)
- java自己实现的简单的hashMap
- 欢迎使用CSDN-markdown编辑器
- caffe+SSD+Ubuntu16.04+CPU的配置及运行
- 安卓初接触---页面布局