Open 1684838553 opened 1 year ago
/**
* @param {number} dividend
* @param {number} divisor
* @return {number}
*/
var divide = function(dividend, divisor) {
let flag = true
if((dividend < 0 && divisor > 0) || (divisor < 0 && dividend > 0)){
flag = false
} else{
flag = true
}
if(dividend == 0) {
return 0
}
if (dividend === -(2**31) && divisor === -1) {
return 2**31-1
}
if (dividend === -(2**31) && divisor === 1) {
return -(2**31)
}
dividend = Math.abs(dividend)
divisor = Math.abs(divisor)
let result = 0
while(dividend >= divisor){
dividend -= divisor
result += 1
}
return flag ? result : -result
};
29. 两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
返回被除数 dividend 除以除数 divisor 得到的商。
整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2
示例 1:
输入: dividend = 10, divisor = 3 输出: 3 解释: 10/3 = truncate(3.33333..) = truncate(3) = 3 示例 2:
输入: dividend = 7, divisor = -3 输出: -2 解释: 7/-3 = truncate(-2.33333..) = -2