• 29. Divide Two Integers(js)


    29. Divide Two Integers

    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
    题意:实现两个整数相除的函数,不能使用乘,除,余运算符
    代码如下:
    /**
     * @param {number} dividend
     * @param {number} divisor
     * @return {number}
     */
    const MAX_VALUE=Math.pow(2,31)-1;
    const MIN_VALUE=Math.pow(-2,31);
    var divide = function(dividend, divisor) {
        var sign=1;
        if((dividend>0 && divisor<0) || (dividend<0 && divisor>0)){
            sign=-1;
        }
        var ldividend=Math.abs(dividend);
        var ldivisor=Math.abs(divisor);
        if(ldivisor==0) return MAX_VALUE;
        if(ldividend==0 || ldividend<ldivisor) return 0
    
        var lans=ldivide(ldividend,ldivisor);
    
        var ans;
        if(lans>MAX_VALUE){
            ans=(sign==1)? MAX_VALUE:MIN_VALUE;
        }else{
            ans=sign*lans;
        }
    
        return ans;
    };
    var ldivide=function(ldividend,ldivisor){
        if(ldividend<ldivisor) return 0;
    
        var sum=ldivisor;
        var multiple=1;
        while((sum+sum) <= ldividend){
            sum+=sum;
            multiple+=multiple;
        }
        return multiple+ldivide(ldividend-sum,ldivisor)
    };
  • 相关阅读:
    信息论
    学习抓包
    深入学习垃圾kafka
    share data
    【转载】计算图像相似度——《Python也可以》之一
    聊聊java list的使用特性
    log4j多线程以及分文件输出日志
    【转载】JDBC的连接参数的设置导致rowid自动添加到sql
    背包问题
    【转】【动态规划】01背包问题
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10392880.html
Copyright © 2020-2023  润新知