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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM