zoukankan      html  css  js  c++  java
  • LeetCode29.两数相除 JavaScript

    给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。

    返回被除数 dividend 除以除数 divisor 得到的商。

    示例 1:

    输入: dividend = 10, divisor = 3
    输出: 3

    示例 2:

    输入: dividend = 7, divisor = -3
    输出: -2

    说明:

    • 被除数和除数均为 32 位有符号整数。
    • 除数不为 0。
    • 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。

    答案参考:

    /**
     * @param {number} dividend
     * @param {number} divisor
     * @return {number}
     */
    
    var divide = function (dividend, divisor) {
        let result = 0, sign = 1, mul = 1;
        if ((dividend > 0 && divisor < 0) || (dividend < 0 && divisor > 0)) {
            sign = -1;
        }
        dividend = Math.abs(dividend);
        divisor = Math.abs(divisor);
     
        divisor2 = divisor;
     
        while (dividend >= divisor2) {
            if (dividend > (divisor2 + divisor2)) {
                divisor2 += divisor2;
                mul += mul;
            }
            dividend -= divisor2;
            result += mul;
        }
        while (dividend >= divisor) {
            dividend -= divisor;
            result += 1;
        }
     
        if (sign == 1 && result > (Math.pow(2, 31) - 1)) {
            return Math.pow(2, 31) - 1;
        } else if (sign == -1 && result < -Math.pow(2, 31)) {
            return -Math.pow(2, 31);
        }
        if (sign == 1) {
            return result;
        } else {
            return -result;
        }
    };
  • 相关阅读:
    JQuery Ajax调用asp.net后台方法
    使用NuGet发布自己的类库包(Library Package)
    Database Schema Reader
    DELL服务器引导光盘图片及下载链接
    android 点击屏幕关闭 软键盘
    xUtils
    fastjson是阿里巴巴的开源JSON解析库
    安卓学习资料
    DELL服务器引导光盘下载
    sqlserver下载
  • 原文地址:https://www.cnblogs.com/lhh520/p/10392702.html
Copyright © 2011-2022 走看看