leetcode題目29 兩數相除

2021-10-04 03:14:05 字數 1032 閱讀 9371

給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法、除法和 mod 運算子。

返回被除數 dividend 除以除數 divisor 得到的商。

整數除法的結果應當截去(truncate)其小數部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2

示例:

輸入: dividend = 10, divisor = 3

輸出: 3

解釋: 10/3 = truncate(3.33333…) = truncate(3) = 3

class

solution

:def

divide

(self, dividend:

int, divisor:

int)

->

int:

sign =

(dividend >0)

^(divisor >0)

dividend =

abs(dividend)

divisor =

abs(divisor)

count =

0while dividend >= divisor:

count +=

1 divisor <<=1

result =

0while count >0:

count -=

1 divisor >>=1

if divisor <= dividend:

result +=

1

if sign: result =

-result

return result if-(

1<<31)

<= result <=(1

<<31)

-1else(1

<<31)

-1

LeetCode29 兩數相除

給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出 2說...

LeetCode 29 兩數相除

給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divisor 3 輸出...

leetcode 29 兩數相除

給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出 2說...