python 整除负数_负数取余/整除,Python和C语言的不同

总结一句:Python中负数整除,是向负无穷取整,所以导致负数取余不对 在数学公式中,两种语言的表示算法都是一样的,都是: r=a-n*[a/n] 以上,r是余数,a是被除数,n是除数. 唯一不同点,就是商向0或负无穷方向取整的选择,c从c99开始规定向0取整,python则规定向负无穷取整,选择而已. 向零取值的含义是:9/7=1 .29----向0取值-->1:-9/7=-1.29----向0取值------>-1 向负无穷取值的含义是:9/7=1 .29----向0取值-->1:-…

print(-123%10)   # 输出 7   print(-123%-10)  # 输出 -3 这里面第二条是我们一般意义上的取余操作.这里也特别标注一下,如果涉及到负数取余要用上述解决办法. 那么我们看第一条,结果等于7.这个结果有点让人摸不到头脑,不过这个结果与Python的底层机制有关. 在Python中,取余的计算公式与别的语言并没有什么区别:r=a-n*[a//n] 这里r是余数,a是被除数,n是除数. 不过在“a//n”这一步,当a是负数的时候,我们上面说了,会向下取整,也就是…

负数求余数运算是一个数学问题: 任何一个整数n都可以表示成 n=k*q+r 其中0<=|r|

今天看书发现python与C的负数取余运算结果不同,查资料理解. 取余运算的算法是相同的  r = a- n*(a/n)   n!=0 r是余数,a是被除数,n是除数.n不能为0,否则都会报错. 负数取余运算的区别在于除法的取整方向不同,C语言从C99开始规定向0取整,python规定向负无穷取整. python a%n的符号与n相同 -11//4 #值为-3 -11%4 -> (-11) -4*(-11//4) =1 #值为1 C语言 a%n的符号与a相同 -/ //值为-2 -% (-) -…

1:关于除法,不管是正数还是负数都是向0取整的:10/4 = 2,10/(-4) = -2 2:负数取余,通过取模来判定 |小| % |大| = |小| 符号同前    |大| % |小| = |余| 符号同前 3%4 = 3 : -3%4 = -3 : -3%-4 = -3 : 3%-4 = 3: 5%3 = 2 : 5%-3 = 2  :-5%-3 = -2 : -5%3 = -2: 3:浮点数转化为int整形时,小数部分会被省略,注意不是四舍五入~~…

PHP语言虽然功能强大,但并不代表其没有缺点,在编写代码的过程中未免会遇到一些让人头痛的问题.下面我们将为大家介绍有关PHP整数取余返回负数的解决办法. 我们先来看个例子. $res = 16244799483; echo $res%9999999; // 输出结果为 -5069794, 正确的结果应该是4801107 其实这也算上PHP一个BUG吧.最主要是PHP是个弱类型语言.他内置了机器来判断用户的类型. 但是机器毕竟是机器.也有判断出错的时候.就像上面.所以这时候我们就需要人工干预下.…

a=-7,b=3, a % b = 2  #取余 a-((a/b)*b) a / b= -3 #整除 int(math.floor(-7/3.0))…

python中取余运算逻辑如下: 如果a 与d 是整数,d 非零,那么余数 r 满足这样的关系: a = qd + r , q 为整数,且0 ≤ |r| < |d|. 经过测试可发现,python3.6中取余运算得到的 r 是正整数:…

2141: 2333 题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“ 宝儿姐考察你一道很简单的题目.给你一个数字串,你能判断有多少个连续子串能整除3吗? 输入 多实例输入,以EOF结尾,每行一个数字串(长度<=1e6) 输出 每行一个数字串,表示能整除3的连续子串的个数 样例输入 (随机敲了一组样例,发现了新的bug) 样例输出 大致思路: 根据题意可知,时间复杂度只够跑单重循环,多重循环就炸了! 求一次前缀和,存进dp数组!然后对3取余,分别求出0/1/2的个数为sum…

前几天,一个小姐姐问我取余和取模有什么区别,我当时第一反应就是二者是一样的,但是小姐姐咬死说不一样.我去百度了一下还真的不一样.脑壳疼,我当初误导了多少人.所以为了帮助我记忆也为了帮助预防我误人子弟 在C语言中对于整型数a,b来说,取模运算或者求余运算的方法都是: 第一步,求整数商: c = a / b; 第二步,计算模或者余数: r = a - c * b. 那么差异在哪呢?其实在第一步 取余运算在计算c的值时,向 0 方向舍入: 取模运算在计算c的值时,向 –∞ 方向舍入. 所谓向0方向舍入…

加法: 输入以下代码: >>>1+1 >>>1.0+1 减法: 输入以下代码: >>>1-2 >>>1.0-2 乘法: 输入以下代码: >>>2*4 >>>2.0*4 除法: 输入以下代码: >>>2/4 >>>2.0/4 >>>2//4 >>>2.0//4 取整: 输入以下代码: >>>2//4 >&g…

//函数fun功能:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中.高位仍在高位,低位仍在低位. //重难点:思路:因为不是字符串,所以可以把问题变成整数的操作,采用取余和除的操作.对整数进行取余和除以操作. #include void fun (long s, long *t) { int d; ; *t = ; )//思路因为不是字符串,所以可以把问题变成整数的操作,采用取余和除的操作. { d = s%;//取余操作,取最后一位数字. /********…

//给定程序中fun函数的功能是:从低位开始取出长整形变量s中奇数位上的数,依次构成一个新的数放在t中.高位仍在高位,低位仍在低位.例如:当s中的数为7654321时,t中的数为7531. //重难点:函数传递的形参和实参类型要一致.对整型变量进行取余操作可以取得各个位上的值. #include /************found************/ void fun (long s, long *t)//思路为对整型变量进行取余操作可以取得各个位上的值. { ;…

#运算符sum = 9//2 #取商print(sum) sum = 9%2 #取余print(sum) #inname1 = '小林'name2 = '林倩'if '林' in name1: print('名字包含林')# not inif '清' not in name2: print('名字不包含清')else: print('名字包含清')…

准备工作: 使用环境 :PHPStudy 开启Apache和Mysql 打开代码编辑器

Calculator

控制语句 if语句,当条件成立时运行语句块.经常与else, elif(相当于else if) 配合使用. for语句,遍历列表.字符串.字典.集合等迭代器,依次处理迭代器中的每个元素. while语句,当条件为真时,循环运行语句块. try语句,与except,finally配合使用处理在程序运行中出现的异常情况. class语句,用于定义类型. def语句,用于定义函数和类型的方法. pass语句,表示此行为空,不运行任何操作. assert语句,用于程序调试阶段时测试运行条件是否满足. w…

工作中遇到一个简单的小问题,判断两个数是否整除,如果不整除,获取相关的余数. 习惯java的我毫不犹豫的写下了代码 public Boolean isDivisibility(Integer dividend,Integer divider) { return dividend % divider == 0; } 提交代码发现竟然提交不上?? 后来查看API发现apex中没有直接的%取余运算,所以如果想要取余以及判断是否整除需要其他方式,代码如下: public without sharing…

原帖:http://blog.csdn.net/sonydvd123/article/details/8245057 一.下面的题目你能全做对吗? 1.7/4=? 2.7/(-4)=? 3.7%4=? 4.7%(-4)=? 5.(-7)/4=? 6.(-7)%4=? 7.(-7)/(unsigned)4=? 答案: 1 -1 3 3 -1 -3 1073741822 如过你全部答对,你可以无视后面的内容…… 二.除法的取整分类 除法的取整分为三类:向上取整.向下取整.向零取整. 1.向上取整:向…

预习: r=余数 a=被除数 b=除数 c=商 a/b=c........r r=a-(a/b)*b 一.下面的题目你能全做对吗?1.7/4=?2.7/(-4)=?3.7%4=?4.7%(-4)=?5.(-7)/4=?6.(-7)%4=?7.(-7)/(unsigned)4=?答案:1-133-1-31073741822如过你全部答对,你可以无视后面的内容…… 二.除法的取整分类除法的取整分为三类:向上取整.向下取整.向零取整.1.向上取整:向+∞方向取最接近精确值的整数. 在这种取整方式下,7…

# ### python运算符 #(1) 算数运算符: + - * / //(地板除) %(取余) **(幂运算) var1 = 5 var2 = 8 # +res = var1 + var2 print(res) # - res = var1 - var2 print(res) # * res = var1 * var2 print(res) # /(除法,结果一定是小数) var1 = 8 var2 = 2 res = var1/var2 print(res) # // 地板除(整除) va…

昨天在学习Matlab的数学函数时,教程中提到取模(mod)与取余(rem)是不同的,今天在网上具体查了一下: 通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:    当x和y的正负号一样的时候,两个函数结果是等同的:当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样.    这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入…

POJ 1745 线性和差取余判断 题目大意:每个数都必须取到,相加或相减去,问所有的方案最后的得数中有没有一个方案可以整除k 这个题目的难点在于dp数组的安排上面 其实也就是手动模仿了一下 比如 一个数,不用说,第一个数之前不用加符号就是本身,那么本身直接对K取余, 那么取17的时候有个余数为2————基础然后来了一个5,(2 + 5)对7取余为0————层层延伸 (2 - 5)对7取余为4(将取余的负数变正) 那么前2个数有余数0和4再来一个-21(0+21)对7取余为0(0-21)对7取余…

取余是针对整形的,但是有时候一些特殊需求,我们需要 float 型对整形取下余数.比如,将角度化到 0- 360 范围内. 今天看到 lua 的实现方式: a % b == a - math.floor(a/b)*b 其它语言的也类似,关键就在使用 floor() 函数进行向下取整. 关于 floor(),示例如下: floor(3.14) = 3.0 floor(9.999999) = 9.0 floor(-3.14) = -4.0 floor(-9.999999) = -10   b 取整数…

http://lightoj.com/volume_showproblem.php?problem=1214 这就是一道简单的大数取余. 还想还用到了同余定理: 所谓的同余,顾名思义,就是许多的数被一个数d去除,有相同的余数.d数学上的称谓为模.如a=6,b=1,d=5,则我们说a和b是模d同余的.因为他们都有相同的余数1. 数学上的记法为: a≡ b(mod d) 可以看出当n

我们都知道,Python的底层是用C语言实现的,但切忌用C语言的思维和风格来编写Python代码.Python与其他语言有很多不同,以下来进行简单的分析: (1)"缩进"与“{}” 与C,C++,Java等语言使用花括号{}来分割代码段不同,Python中使用的代码缩进方式分割代码块. (2)‘与“ C语言中单引号(')与双引号(")有严格的区别,单引号代表一个字符,它实际对应于编译器所采用的的字符集中的一个整数值.例如在ASCII中,'a'与数字97相对应.而双引号则表示字…

java 取模运算%  实则取余 简述 例子 应用在数据库分库分表 取模运算 求模运算与求余运算不同.“模”是“Mod”的音译,模运算多应用于程序编写中. Mod的含义为求余.模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影.虽然很多数论教材上对模运算都有一定的介绍,但多数都是以纯理论为主,对于模运算在程序设计中的应用涉及不多. 取余运算区别 对于整型数a,b来说,取模运算或者求余运算的方法都是:…

一.下面的题目你能全做对吗? 1.7/4=? 2.7/(-4)=? 3.7%4=? 4.7%(-4)=? 5.(-7)/4=? 6.(-7)%4=? 7.(-7)/(unsigned)4=? 答案: 1 -1 3 3 -1 -3 1073741822 如过你全部答对,你可以无视后面的内容…… 二.除法的取整分类 除法的取整分为三类:向上取整.向下取整.向零取整. 1.向上取整:向+∞方向取最接近精确值的整数.在这种取整方式下,7/4=2,7/(-4)=-1,6/3=2,6/(-3)=-2 2.向…

Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进制的数,并且只能由给定的M个数字构成,同时密码是一个给定十进制整数N(0<=N<=5000)的正整数倍(如果存在多个满足条件的数,那么最小的那个就是密码),如果这样的密码存在,那么当你输入它以后门将打开,如果不存在这样的密码......那就把门炸了吧. 注意:由于宝藏的历史久远,当时的系统最多只能…

你可能感兴趣的:(python,整除负数)