lintcode 中等题:Divide Two Integers 两个数的除法
2015-11-20 20:32
148 查看
题目
如果溢出,返回
样例
给定被除数 =
解题
15%的通过率,减法,位运算?表示不知道如何下手。
法一:利用减法,超时,人工直接去除的一些情况太流氓。
Java Code
两个整数相除
将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回
2147483647。
样例
给定被除数 =
100,除数 =
9,返回
11
解题
15%的通过率,减法,位运算?表示不知道如何下手。
法一:利用减法,超时,人工直接去除的一些情况太流氓。
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; if(divisor == -1 && dividend == Integer.MIN_VALUE) return Integer.MAX_VALUE; int count = 0; long pDividend = Math.abs((long)dividend); long pDivisor = Math.abs((long)divisor); while(pDividend >= pDivisor){ int count1 = 1; long sum = pDivisor; while(( sum + sum)<= pDividend){ count1 += count1; sum +=sum; } count += count1; pDividend -= sum; } if( dividend >0 && divisor >0 || dividend<0 && divisor<0) return count; else return -count; } }
Java Code
相关文章推荐
- 聊一聊:相机篇2:光圈
- Mysql 常用命令
- webpack异步加载业务模块
- express4.x socket
- 最佳单例模式
- sleep和wait的区别
- Linux 数据重定向
- 一致性hash
- 杭电2647 Reward
- Java会出现"unreachable code"错误的几个例子
- volatile
- libc中的hook机制
- Eclipse错误集(一)
- 使用javaassist在内存中动态生成类
- BC #62 div1 02
- 【LeetCode OJ 009】Palindrome Number
- 《增长黑客:创业公司的用户与收入增长秘籍》----你的技术真的可以赚钱
- SQL基础--> 约束(CONSTRAINT)
- LinkedList
- hdu4245A Famous Music Composer(水题)