2021-09-27

来自剑指offerⅡ的一道题,如何在不使用乘号、除号、取余符号的情况下实现整数除法操作。

首先想到的是被除数循环减除数,减到不能再减了,减的次数就是最终答案。这也是除法的本质,但是能不能快一点不用一个一个减呢?答案是可以的,我们可以通过位移被除数的操作来判断可减去除数的数量,代码如下。

class Solution {// a为被除数,b为除数public int divide(int a, int b) {if (a == 0)return 0;if (a == b)return 1;if (a == Integer.MIN_VALUE && b == -1)return Integer.MAX_VALUE;boolean f = (a ^ b) < 0;long a1 = Math.abs((long)a);long b1 = Math.abs((long)b);int res = 0;for (int i = 31; i >= 0; i--) {if ((a1 >> i) >= b1) {a1 -= (b1 << i);res += (1 << i);}}return f ? -res : res;}
}

【算法】不用乘、除、取余操作实现除法相关推荐

  1. 小解的C语言笔记:循环中的取余操作 0%0

    循环中的取余操作 0%0 题目 总结 题目 p 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er sa ...

  2. JS 取整,取余操作

    在我们进行数据处理时,往往会用到某个数的取整和取余操作,下面对这该方法进行总结 文章目录 1.丢弃小数部分,保留整数部分 2.向上取整,有小数就整数部分加1 3.四舍五入. 4.向下取整 5.java ...

  3. python中如何取余_python如何实现取余操作的方法

    python如何实现取余操作的方法 发布时间:2020-08-17 09:36:53 来源:亿速云 阅读:68 作者:小新 这篇文章主要介绍python如何实现取余操作的方法,文中介绍的非常详细,具有 ...

  4. python的取整和取余_python实现取余操作的简单实例

    python实现取余操作的方法: 可以利用求模运算符(%)来实现.求模运算符可以将两个数相除得到其余数.我们还可以使用divmod()函数来实现取余操作,具体方法如:[divmod(10,3)]. 在 ...

  5. python求余_python如何实现取余操作

    python实现取余操作的方法:可以利用求模运算符(%)来实现.求模运算符可以将两个数相除得到其余数.我们还可以使用divmod()函数来实现取余操作,具体方法如:[divmod(10,3)]. 在p ...

  6. lua4.0中实现% 取余操作

    相信大家对%取余很熟悉,lua5.0以上也完美的支持了,但是我最新的项目服务器使用%却莫名的报错,最后终于找到了罪魁祸首, #define LUA_VERSION "Lua 4.0" ...

  7. leetcode(3)——697. 数组的度(C++版本注释)(map容器),448. 找到所有数组中消失的数字(取余操作,C++中的auto类型)

    文章目录 前言 697 程序 思路 收获 map容器 448 程序 收获 取模操作的思考 auto 前言 大佬的程序,边刷边总结边学语言. 题目697 697 程序 class Solution {p ...

  8. Python负数除法取余操作

    除法 print(-12/10) -1.2 取余 print(-123%10) print(-123%-10) 7 -3 在Python中,取余的计算公式与别的语言并没有什么区别:r=a-n*[a// ...

  9. c语言remainder函数,【总结】C/C++取余操作:%、fmod()、remainder()的区别和联系

    定义 fmod double fmod (double numer , double denom); float fmod (float numer , float denom); long doub ...

最新文章

  1. 【java】兴唐第二十三节课作业
  2. Jvm 系列(二):Jvm 内存结构
  3. 手把手教你生成对抗网络 GAN,50 行代码玩转 GAN 模型!(附源码)
  4. [转载]CentOS 7安装Gnome GUI 图形界面
  5. 利用单臂路由实现VLAN间路由
  6. 反应机理_过敏反应的发生机理及表现
  7. 一、typescript介绍和安装
  8. (NO.00003)iOS游戏简单的机器人投射游戏成形记(十二)
  9. WebLogic11g-常用运维操作
  10. CSS之Responsive设计的关键三步
  11. DoTween NGUI bug
  12. 计算机网络网际协议实验报告,计算机网络课程网际协议IP地址实验报告.doc
  13. 萌宠NFT将于4月16日正式上线
  14. 《统计学习方法》代码全解析——第三部分k近邻法
  15. WinSock Socket 池
  16. 【库安装】windows下Python安装protobuf
  17. python计算图片的信源熵值(信息熵)
  18. ufw防火墙配置命令
  19. ImageAI的介绍(2)
  20. ipad无法充电怎么办_ipad不能充电怎么办 6种办法快速解决

热门文章

  1. TerminateThread导致程序未响应
  2. AS2.0列表带图片视频播放器【附原码下载】
  3. mysql添加用户并设置权限
  4. Hive的HQL语句及数据倾斜解决方案
  5. 导出超大数据excel,基于EEC实现
  6. 为什么现在的大学生喜欢去报名软件培训班
  7. 【路径规划】基于遗传算法实现外卖订单动态变换模型求解附matlab代码
  8. linux 进程 系统调用,linux进程与系统调用
  9. 使用手机摄像头做网络ip摄像头 并用opencv获取rtsp视频流
  10. 南大周志华团队开源深度森林软件包DF21:训练效率高、超参数少,普通设备就能跑 | AI日报...