# 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