# Divide Two Integers Program Solution

Problem Statement

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`.

We at gradjobopenings.com provide free job alerts of freshers job drives. In this website we list on campus job openings for freshers and off campus job openings for freshers and also work from home job openings. This is the best website to apply for off campus drive in India. Visit our website for government job alerts and private job alerts. We also list free interview notes and study materials, one of the best interview study website.comfortable to face the interviews:

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: `[−231, 231 − 1]`. For this problem, if the quotient is strictly greater than `231 - 1`, then return `231 - 1`, and if the quotient is strictly less than `-231`, then return `-231`.

Example 1:

```Input: dividend = 10, divisor = 3
Output: 3
Explanation: 10/3 = 3.33333.. which is truncated to 3.
```

Example 2:

```Input: dividend = 7, divisor = -3
Output: -2
Explanation: 7/-3 = -2.33333.. which is truncated to -2.
```

Constraints:

• `-231 <= dividend, divisor <= 231 - 1`
• `divisor != 0`
• Time: O(\log^2 n)O(log2n)
• Space: O(1)O(1)

### DIVIDE TWO INTEGERS Program Solution in C++

``````class Solution {
public:
int divide(int dividend, int divisor) {
// -2^{31} / -1 = 2^31 -> overflow so return 2^31 - 1
if (dividend == INT_MIN && divisor == -1)
return INT_MAX;

const int sign = dividend > 0 ^ divisor > 0 ? -1 : 1;
long ans = 0;
long dvd = labs(dividend);
long dvs = labs(divisor);

while (dvd >= dvs) {
long k = 1;
while (k * 2 * dvs <= dvd)
k *= 2;
dvd -= k * dvs;
ans += k;
}

return sign * ans;
}
};
``````

### DIVIDE TWO INTEGERS Program Solution in JAVA

``````class Solution {
public int divide(long dividend, long divisor) {
// -2^{31} / -1 = 2^31 -> overflow so return 2^31 - 1
if (dividend == Integer.MIN_VALUE && divisor == -1)
return Integer.MAX_VALUE;

final int sign = dividend > 0 ^ divisor > 0 ? -1 : 1;
long ans = 0;
long dvd = Math.abs(dividend);
long dvs = Math.abs(divisor);

while (dvd >= dvs) {
long k = 1;
while (k * 2 * dvs <= dvd)
k *= 2;
dvd -= k * dvs;
ans += k;
}

return sign * (int) ans;
}
}
``````

### DIVIDE TWO INTEGERS Program Solution in Python

``````class Solution:
def divide(self, dividend: int, divisor: int) -> int:
if dividend == -2**31 and divisor == -1:
return 2**31 - 1

sign = -1 if (dividend > 0) ^ (divisor > 0) else 1
ans = 0
dvd = abs(dividend)
dvs = abs(divisor)

while dvd >= dvs:
k = 1
while k * 2 * dvs <= dvd:
k <<= 1
dvd -= k * dvs
ans += k

return sign * ans
``````
error: Content is protected !!