我们模拟小学列竖式的方法
将数字转化为字符串
从高位开始 逐位计算
class Solution:
def divide(self, dividend: int, divisor: int) -> int:
res = 0
isNeg = False
if dividend < 0:
isNeg = not isNeg
if divisor < 0:
isNeg = not isNeg
canyu = abs(dividend)
divisor = abs(divisor)
intstr = str(canyu)
length = len(intstr)
index = 0
lastres = 0
while index < length:
#for i in range(9):
# res += res
res = res + res + res + res + res + res + res + res + res + res#res * 10
temp = int(intstr[index]) + lastres
if temp >= divisor:
while temp >= divisor:
res += 1
temp -= divisor
lastres = temp + temp + temp + temp + temp + temp + temp + temp + temp + temp #temp * 10
#for i in range(10):
# lastres += temp
elif temp < divisor:
lastres = temp + temp + temp + temp + temp + temp + temp + temp + temp + temp #temp * 10
#for i in range(10):
# lastres += temp
index += 1
res = -1*res if isNeg == True else res
if res > 2147483647 :
res = 2147483647
elif res < -2147483648:
res = 2147483648
return res