当前位置: 首页 > news >正文

LeetCode29.两数相除 JavaScript

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

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

示例 1:

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

示例 2:

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

说明:
被除数和除数均为 32 位有符号整数。
除数不为 0
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。本题中,如果除法结果溢出,则返回 2^31 − 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;
    }
};

欢迎关注

相关文章:

  • vim命令模式下光标移动+查找
  • Fastjson的基本使用方法大全
  • 面孔相册按脸给照片分类 这是靠小米人脸检测技术实现的
  • 数据结构java版之冒泡排序及优化
  • 洛谷1474货币系统——小心重复的完全背包
  • 博弈论入门之斐波那契博弈
  • 工程优化暨babel升级小记
  • poj 3280【区间dp】
  • iOS 9以上系统 信任的企业级开发者证书
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • volatile
  • 自定义主题
  • python爬微信公众号前10篇历史文章(1)-思路概览
  • windows server 2008R2 域控迁移到 windows server 2012域控
  • 自学web前端课程大纲分享,适合所有人学习
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • CSS 三角实现
  • Docker: 容器互访的三种方式
  • LeetCode18.四数之和 JavaScript
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • MySQL主从复制读写分离及奇怪的问题
  • Python十分钟制作属于你自己的个性logo
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 闭包,sync使用细节
  • 蓝海存储开关机注意事项总结
  • 浅谈Golang中select的用法
  • 如何胜任知名企业的商业数据分析师?
  • 一个完整Java Web项目背后的密码
  • 最近的计划
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • ###STL(标准模板库)
  • #Linux(make工具和makefile文件以及makefile语法)
  • (145)光线追踪距离场柔和阴影
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot教学评价 毕业设计 641310
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (南京观海微电子)——I3C协议介绍
  • .NET Core 2.1路线图
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 后台导出excel ,word
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • /etc/sudoer文件配置简析
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [1] 平面(Plane)图形的生成算法
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [CLR via C#]11. 事件
  • [CQOI 2010]扑克牌
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [GXYCTF2019]禁止套娃