給定兩個整數,被除數dividend
和除數divisor
。將兩數相除,要求不使用乘法、除法和 mod 運算子。
返回被除數dividend
除以除數divisor
得到的商。
示例 1:
輸入:dividend = 10, divisor = 3輸出:3示例 2:
輸入:dividend = 7, divisor = -3輸出:-2說明:
思路:可以將 deivdend 減去 divisor,看看有多少個 divisor,要注意符號的問題,但這個解答太慢了。以及最小數除以 -1 的時候變為最大數,而不是最小數的絕對值,因為最小數的絕對值已經超出了 int 型別的範圍。
class solution
res += p;
m -=t;
}return sign==1?res:-res;
}}
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 兩數相除
題目要求不能使用乘法 除法和除餘運算,但我們可以將除法轉移到對數域。frac e e 這樣就轉化為指數 對數和減法運算了。因為只能對正整數取對數,因此我們首先要將兩個數都取絕對值,最後再加上符號。同時,題目要求只能儲存 32 位有符號整數,因此,當資料大於上邊界時,需要進行特殊處理。class so...