LintCode 两个整数相除
来源:互联网 发布:测孕软件 编辑:程序博客网 时间:2024/05/16 11:10
将两个整数相除,要求不使用乘法、除法和 mod 运算符。
如果溢出,返回 2147483647 。
样例
给定被除数 = 100 ,除数 = 9,返回 11。
不使用乘法、除法、mod,利用左移而不是加法(加法慢)来计算。注意溢出问题,计算时用long来计算,得到结果再比较是否溢出。
代码如下:
public class Solution { /* * @param dividend: the dividend * @param divisor: the divisor * @return: the result */ public int divide(int dividend, int divisor) { // write your code here if(divisor==0){ return Integer.MAX_VALUE; } long flag=(dividend<0)^(divisor<0)?-1:1; long x=Math.abs((long)dividend); long y=Math.abs((long)divisor); if(x<y){ return 0; } long res=0; while(x>=y){ long temp=y; long tempRes=1; while(x>=(temp<<1)){ temp<<=1; tempRes<<=1; } x-=temp; res+=tempRes; } if(flag*res>Integer.MAX_VALUE || flag*res<Integer.MIN_VALUE){ return Integer.MAX_VALUE; } else{ return new Long(flag*res).intValue(); } }}
阅读全文
0 0
- LintCode-两个整数相除
- LintCode:两个整数相除
- 两个整数相除-LintCode
- LintCode 两个整数相除
- lintcode(414)两个整数相除
- LintCode:M-两个整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- 题目:两个整数相除
- LintCode_两个整数相除
- Leetcode020--两个整数相除
- 29.两个整数相除
- 两个整数相除得float
- 求两个整数相除的结果
- Divide Two Integers 两个整数相除
- 转载部分代码,窗口点击问题,顺序,初始化数组,简单结构体
- 函数指针
- Spring 框架学习(一):设计理念、整体架构
- 一篇文章纵览阿里云移动云Apsara Mobile产品系
- 我理解的Rxjava
- LintCode 两个整数相除
- Linux学习:安装交叉编译工具链
- c++之--const override
- Spring远端调用的实现-Spring Http调用的实现
- oracle有buffer等待事件,根据file#和block#确定objects
- ubuntu编译android出现error while loading shared libraries: libstdc++.so.6: cannot open shared objec的解决方法
- 千寻位置千寻知寸测试
- EasyUI
- 盒马创始人侯毅首次解读:盒马是什么