Algorithms of Math: Divide Two Integers
Problem Description
Given two integers dividend
and divisor
, divide two integers without using multiplication, division, and mod operator.
The integer division should truncate toward zero, which means losing its fractional part. For example, 8.345
would be truncated to 8
, and -2.7335
would be truncated to -2
.
Return the quotient after dividing dividend
by divisor
.
Note: Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1]
. For this problem, if the quotient is strictly greater than 2^31 - 1
, then return 2^31 - 1
, and if the quotient is strictly less than -2^31
, then return -2^31
.
Example 1:
Input: dividend = 10, divisor = 3 |
Example 2:
Input: dividend = 7, divisor = -3 |
Constraints:
-2^31 <= dividend, divisor <= 2^31 - 1
divisor != 0
Related Topics
- Math
- Bit Manipulation
Analysis
set quotient = 0 |
Solution
public int divide(int dividend, int divisor) { |
TODO
Demonstrate dividend - (divisor ^ (subQuot + 1)) >= 0 is always right?
References
[1] Divide Two Integers - Java | 0ms | 100% faster | Obeys all conditions