Divide Two Integers
问题简介: 给定两个整数被除数和除数, 运算过程中不使用乘法, 除法和模运算符, 返回商, dividend 是被除数, divisor 是除数.
注:
1. 被除数和除数都是 32 位有符号整数
2. 除数永远不会为 0
3. 假设我们正在处理一个只能在 32 位有符号整数范围内存储整数的环境:[ - 231,231 - 1], 出于此问题的目的假设当除法结果溢出时, 函数返回 231 - 1.
举例:
1:
输入: dividend = 10, divisor = 3
输出: 3
2:
输入: dividend = 7, divisor = -3
输出: -2
解法一:
利用异或 ^ 判断商的符号, 即只有一个数字为负结果为负, 利用位运算符 << 进行运算, 因为 << 代表 2 的幂数
注:
1.Integer.MAX_VALUE/Integer.MIN_VALUE: 代表 int 的范围
2.Math.abs()- 绝对值函数
小白刷题之路, 请多指教 - - 要么大器晚成, 要么石沉大海
来源: http://www.bubuko.com/infodetail-3046044.html