Python正数的整除 // 以及取余 % 与C++等语言相同,但当除数与被除数有一个是负数时就返回的结果有所区别
首先是整除,C++中是向0取整的, 而在Python中,整除的结果都是向下取整的,相当于用了floor()函数

  // c++17 / 5 = 317 / -5 = -3-17 / 5 = -3-17 / -5 = 3
  # python17 // 5 = 317 // -5 = -4-17 // 5 = -4-17 / -5 = 3

理解了整除,那么取余也就很好理解了,因为 被除数 // 除数 = 商 R 余数,所以余数 = 被除数 - 商 * 除数 。R表示余。只需要和前面的整除的商对应就知道取余的结果是什么。

  // c++17 % 5 = 2 // 17 - 3 * 5 = 217 % -5 = 2 // 17 - (-3) * (-5) -17 % 5 = -2 // -17 - (-3) * 5 = -2-17 % -5 = -2 // -17 -(-3) * (-5) = -2
  # python17 % 5 = 2 # 17 - 3 * 5 = 217 % -5 = -3 # 17 - (-4) * (-5) = -3-17 % 5 = 3 # -17 - (-4) * 5 = 3-17 % -5 = -2 # -17 - 3 * (-5) = -2

Python的余数符号总是与除数(除号后面的数)的符号相同,除了堆栈溢出的情况。这样做是因为在有日常生活的例子中,除数往往是一个正数,而一个同样是正数的余数也往往更有用。
例如,计算周天数。如果今天是星期二(第2天),那么N天前的一周是什么?在Python中,我们可以使用

  return (2 - N) % 7

如果是在C++中,N>=3时就会返回一个负数,还需要我们手动补正。
不过我觉得,python这种取余手段,某些情况下更加麻烦,因为真的很反逻辑

Python负数整除和取余相关推荐

  1. 【关于python中整除与取余】

    ##关于python中整除与取余 1. 整除(//) 整除的百度百科 在我看来,整除其实就是算除法的时候,除出来的商. n=189 c=n//100 #百位数 print(c) 1 2. 取余(%) ...

  2. Python中整除(//)和取余(%)问题

    前言:Python中的默认整除所采用的是向下取整(round down),这也就导致了在处理负数的整除时会存在一些问题.而取余操作就是建立在整除的基础上的,从而导致这两种计算均存在问题. 整除 默认向 ...

  3. Python负数的整除和取余

    Python语法对于负数的整除和取余与其他语法不同,在LeetCode刷题中经常会与答案不符,具体如下: 在负数整除中,永远是小于当前小数的最大整数,如下: 7 / -2 = -3.5,7//-2 = ...

  4. C语言整除、取余运算的符号问题

    偶然的机会看到这样一个问题2/(-2)的值是多少 ?回顾以往编程经历,只写过正整数整除.取余.整除和取余的操作如下: 1.a = m/n; 2.b = m%n; 这里a,b,m,n满足的关系:a*n ...

  5. 负数对2取余_不同语言的负数取余问题

    不同语言的负数取余问题 问题的出现 偶然在leetcode上看到一道这样的题: Given a 32-bit signed integer, reverse digits of an integer. ...

  6. Python实现快速幂取余算法

    引子 今天无意中,看到了慧科教育科技集团有限公司-后厂理工学院 的AI相关学员招募信息,要求颇高,还要做编程自测题,并且达到60分才建议进行课程的学习.我忍不住发送了报名信息,得到了自测题.看到了如下 ...

  7. mysql整除、取余、四舍五入

    一. 整除:div 5 div 2 = 2; 二. 取余:mod 5 mod 2 = 1; 三. 四舍五入:round round(1.5) = 2;

  8. 关于整除和取余的理解

    这里是简单的分辨取余和整除的区别. 取余的话,就是用a%b,(这个用在判断每一位的数字是多少的话,可以不停的对10取余,直至取余的的次数等于这个数字的位数) 举个例子: a=1234 b=10 取余的 ...

  9. 【面试相关】python实现快速幂取余算法详解

    假设我们要计算 2102^{10}210 对1000取模的结果,可以很简单的得到24.但是如果要求 210002^{1000}21000 对1000取模的结果,常规方法就行不通了,因为常规的变量无法容 ...

最新文章

  1. FPA笔记三 数据功能的识别
  2. 使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用...
  3. SRS学习笔记7-SrsHttpServer
  4. 无法显示 xml 页 解决方案
  5. textarea 输入框限制字数
  6. 【渝粤题库】广东开放大学 标准化专题讲座 形成性考核
  7. hystrix 源码 线程池隔离_Hystrix源码学习--线程池隔离
  8. Linux 添加新硬盘
  9. PHP中逻辑运算符的高效用法---和||
  10. android定义多个上下文菜单,Android编程实现为ListView创建上下文菜单(ContextMenu)的方法...
  11. (转)洞见 | 为什么银行不愿意坐上Fintech这列过山车?
  12. AV-TEST最新Windows 10平台最佳杀毒软件测试结果
  13. nrf52832(nrf52810)之硬件I2C(TWI)驱动BMI160
  14. 数据结构与算法之python
  15. 梦幻岛颠覆式变革NFT,探索实体与数字的双轨价值
  16. 我爱淘冲刺阶段站立会议2每天任务1
  17. 关于GLMM(generalized linear mixed model)广义线性混合模型
  18. c语言数星星结构体,1469: 数星星(结构体专题)
  19. 电脑常用软件,让你的电脑更加便捷的黑科技软件
  20. 罗技无法使用计算机上的配置文件,如何解决Logitech键盘多媒体键无法使用的问题?...

热门文章

  1. pip2升级报错 ( def read(rel_path: str) ->str: )
  2. oracle字段换名语句,修改表名的sql语句
  3. 【数据可视化】Matplotlib 入门到精通学习笔记(超详细)
  4. Gaea‘s English Studies notes
  5. cisco交换机端口模式
  6. KaiwuDB CTO 魏可伟:1.0 时序数据库技术解读
  7. 百度地图API之如何制作驾车导航
  8. mysql操作命令梳理(4)-grant授权和revoke回收权限
  9. HTML网页底部空白
  10. :root的用法注意