class
solution
new_divisor>>=1;
answer>>=1;
new_dividend-
=new_divisor;
return flag?
(answer+
n_divide
(new_dividend,n_divisor)):
-(answer+
n_divide
(new_dividend,n_divisor));
}int
n_divide
(int dividend,
int divisor)
divisor>>=1;
answer>>=1;
dividend-
=divisor;
return answer+
n_divide
(dividend,n_divisor);}
};
測試案例針對邊界,所以把範圍擴大了。
思路類似輾轉相除法,利用位運算被除數每次減去除數乘以2的最大次方,直到減到比除數小,這裡可以直接遞迴。
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說...