# Divide Two Integers

#1

Given two integers `dividend` and `divisor`, divide two integers without using multiplication, division and mod operator.

Return the quotient after dividing `dividend` by `divisor`.

The integer division should truncate toward zero.

Example 1:

```Input: dividend = 10, divisor = 3
Output: 3```

Example 2:

```Input: dividend = 7, divisor = -3
Output: -2```

Note:

• Both dividend and divisor will be 32-bit signed integers.
• The divisor will never be 0.
• Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 231 − 1 when the division result overflows.

#2

The question asks not to use Divison or Multiplication, but doesn’t mention substraction, so we use that.

``````import "math"

func divide(dividend int, divisor int) int {
quotient := 0
sign := 1

// takes care of overflow
if dividend == math.MinInt32 && divisor == -1 {
return math.MaxInt32
}

// capture the sign
if divisor < 0 && dividend < 0{
divisor = -1 * divisor
dividend = -1 * dividend
} else if divisor < 0{
divisor = -1 * divisor
sign = -1
} else if dividend < 0{
dividend = -1 * dividend
sign = -1
}

//  uses substraction instead of shift operators
for dividend >= divisor {
dividend -= divisor
quotient++
}

return sign*quotient
}
``````