這道題目,表面上很簡單,實際上卻給我挖了個大坑
問題在什麼地方呢?
就是他的特殊情況的判定
由於題目要求,我們的環境只能儲存32位有符號整數,也就是說我們不能使用long型,只能用int型,因此而可能引發一系列的錯誤
先上**:
class solution
int flag=-1;
if((dividend>0 && divisor>0) || (dividend<0 && divisor<0)) flag=1;
//這裡將兩個數都轉換為負數是為什麼呢?
//因為負數的空間比整數的大1,可以避免很多可能超出範圍的情況
dividend=-math.abs(dividend);
divisor=-math.abs(divisor);
int res=0;
while(dividend<0)
return res*flag;}}
執行結果也是極其低下
如果大佬們有更優秀的方法的話,歡迎交流
我先在角落畫畫圓圈
LeetCode 兩數相除
題目 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出...
LeetCode 兩數相除
給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divis...
LeetCode 兩數相除
給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divis...