Skip to content

Commit 66d13a3

Browse files
authored
Merge pull request #1 from simply-nitin/simply-nitin-patch-1
Create Divide2Integers.java
2 parents 617de1f + 557d39d commit 66d13a3

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Divide2Integers {
2+
public int divide(int dividend, int divisor) {
3+
4+
if( divisor == -1 ){
5+
6+
if( dividend == Integer.MIN_VALUE )
7+
8+
return Integer.MAX_VALUE;
9+
10+
}
11+
12+
13+
long a = Math.abs((long)divisor);
14+
15+
long b = Math.abs((long)dividend);
16+
17+
int result = 0;
18+
19+
boolean sign = ( divisor<0 ^ dividend < 0);
20+
21+
22+
23+
while( a <= b ){
24+
25+
int shift = 0;
26+
27+
while((a<<shift)<=b)
28+
29+
shift++;
30+
31+
result += (1<<(shift-1));
32+
33+
b -= (a<<(shift-1));
34+
35+
}
36+
37+
return sign ? -result : result ;
38+
}
39+
}

0 commit comments

Comments
 (0)