給定兩個整數,被除數dividend
和除數divisor
。將兩數相除,要求不使用乘法、除法和 mod 運算子。
返回被除數dividend
除以除數divisor
得到的商。
示例 1:
輸入:dividend = 10, divisor = 3輸出:3示例 2:
輸入:dividend = 7, divisor = -3輸出:-2說明:
好煩啊,居然還不給用現有的,偷別人的看看算了。0.0
這道題換句話說: 除數能減去多少個被除數.
class solution:
def divide(self, divd: int, dior: int) -> int:
res = 0
sign = 1 if divd ^ dior >= 0 else -1#判斷是否為負
#print(sign)
divd = abs(divd)
dior = abs(dior)
while divd >= dior:
tmp, i = dior, 1
while divd >= tmp:
divd -= tmp
res += i
i <<= 1
tmp <<= 1
res = res * sign
return min(max(-2**31, res), 2**31-1)
LeetCode 029 兩數相除
029 兩數相除 給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividen...
LeetCode 029 兩數相除
給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。整數除法的結果應當截去 truncate 其小數部分,例如 truncate 8.345 8 以及 truncate ...
LeetCode 兩數相除
題目 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出...