LeetCode 29 兩數相除

2021-08-25 19:33:56 字數 1086 閱讀 2397

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

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

示例 1:

輸入:dividend = 10, divisor = 3

輸出:3

示例 2:

輸入:dividend = 7, divisor = -3

輸出:-2

說明:

需要判斷結果的符號

初始的時候,需要將被除數和除數都取絕對值,得到tmp_dividendtmp_divisor

主要思路就是用被除數減去除數,用變數res儲存解,也就是減去了多少個除數

因此總結起來就是兩層while迴圈,內層迴圈用來試探不斷逼近tmp_dividend,當用來試探的tmp超過了tmp_dividend時,退出內層迴圈,當前被除數重新賦值為一開始的tmp_divisor

long

long add(long

long a, long

long b)

return

sum;

}int divide(int dividend, int divisor)

}// 如果商小於0,返回res的相反數

if ((dividend ^ divisor) < 0)

res = res > int_min ? res : int_min;

return res < int_max ? res : int_max;

}

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輸出 2說...

LeetCode 29 兩數相除

題目要求不能使用乘法 除法和除餘運算,但我們可以將除法轉移到對數域。frac e e 這樣就轉化為指數 對數和減法運算了。因為只能對正整數取對數,因此我們首先要將兩個數都取絕對值,最後再加上符號。同時,題目要求只能儲存 32 位有符號整數,因此,當資料大於上邊界時,需要進行特殊處理。class so...