29. 两数相除
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
返回被除数 dividend 除以除数 divisor 得到的商。
示例 1:
输入: dividend = 10, divisor = 3
输出: 3
示例 2:
输入: dividend = 7, divisor = -3
输出: -2
题解
效率极低 挖个坑
/**
* @param {number} dividend
* @param {number} divisor
* @return {number}
*/
var divide = function(dividend, divisor) {
let i=divisor,num=0
if(Math.abs(dividend)<Math.abs(divisor)){
return 0
}
if(Math.abs(divisor)==1){
if((dividend>0&&divisor>0)||(dividend<0&&divisor<0)){
if(Math.abs(dividend)==2147483648){
return Math.abs(dividend)-1
}
return Math.abs(dividend)
}else{
return -Math.abs(dividend)
}
}
while(Math.abs(i)<=Math.abs(dividend)){
num++
i+=divisor
}
if((dividend>0&&divisor<0)||(dividend<0&&divisor>0)){
return -num
}
return num
};