1 class Solution(object):
2 def divide(self, dividend, divisor):
3 """
4 :type dividend: int
5 :type divisor: int
6 :rtype: int
7 """
8 ispositive = True
9 if dividend > 0 and divisor < 0:
10 ispositive = False
11 if dividend <0 and divisor > 0:
12 ispositive = False
13 dividend = abs(dividend);divisor = abs(divisor)
14 if dividend < divisor:
15 return 0
16 num = [1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000]
17 i = 9
18 newdividend = []
19 while i >= 0:
20 tmp = 0
21 while dividend >= num[i]:
22 tmp += 1;dividend -= num[i]
23 newdividend.append(tmp); i -= 1
24 tmpm = 0; ans = 0 ;i = 0
25 while i <10:
26 while tmpm < divisor:
27 if i > 9:
28 break
29 j = 0; t = 0
30 while j <10 and tmpm != 0:
31 t += tmpm; j += 1
32 tmpm = t + newdividend[i]; i += 1
33 if tmpm < divisor:
34 j = 0; t = 0
35 while j <10 and ans != 0:
36 t += ans; j += 1
37 ans = t
38 if tmpm >= divisor:
39 k = 0
40 while tmpm >= divisor:
41 tmpm -= divisor; k += 1
42 j = 0; t = 0
43 while j <10 and ans != 0:
44 t += ans; j += 1
45 ans = t + k
46 if ispositive:
47 if ans > 2147483647:
48 return 2147483647
49 return ans
50 if ans >= 2147483648:
51 return -2147483648
52 return 0 - ans
53