Divide Two Integers leetcode java

题目

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

posted @ 2014-07-27 09:12  爱做饭的小莹子  阅读(4025)  评论(2编辑  收藏  举报