码迷,mamicode.com
首页 > 编程语言 > 详细

Divide Two Integers leetcode java

时间:2014-07-27 11:06:32      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:

题目

Divide two integers without using multiplication, division and mod operator.

 

题解

这道题我自己没想出来。。。乘除取模都不让用。。那只有加减了。。。我参考的http://blog.csdn.net/perfect8886/article/details/23040143

 

代码如下:

 

 1      public int divide(int dividend, int divisor) {  
 2         if (dividend == 0 || divisor == 0) {  
 3             return 0;  
 4         }  
 5         boolean isNeg = (dividend > 0 && divisor < 0)  
 6                 || (dividend < 0 && divisor > 0);  
 7         long a = Math.abs((long) dividend);  
 8         long b = Math.abs((long) divisor);  
 9         if (b > a) {  
10             return 0;  
11         }  
12   
13         long sum = 0;  
14         long pow = 0;  
15         int result = 0;  
16         while (a >= b) {  
17             pow = 1;  
18             sum = b;  
19             while (sum + sum <= a) {  
20                 sum += sum;  
21                 pow += pow;  
22             }  
23             a -= sum;  
24             result += pow;  
25         }  
26         return isNeg ? -result : result;  
27     } 

Reference:

 http://blog.csdn.net/perfect8886/article/details/23040143

Divide Two Integers leetcode java

标签:

原文地址:http://www.cnblogs.com/springfor/p/3871008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!