看了ACM-ICPC系列之数论中的定义,取模运算是这样子的。
给定一个正整数p,任意一个整数n,一定存在等式 :
n = kp + r ;
其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。
言下之意就是,余数肯定>0
于是很不开心,写了个程序测试下:
1 printf("(7)MOD5 =%d\n",7%5); 2 printf("(-7)MOD5 =%d\n",(-7)%5); 3 printf("(7)MOD(-5) =%d\n",7%(-5)); 4 printf("(-7)MOD(-5)=%d\n",(-7)%(-5));
结果为:
完全不一样啊,颠覆我的世界观啊。。!
后面百度了下才发现原来。
取模运算(“Modulo Operation”)和取余运算(“Remainder Operation”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。
另外各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。
然后,以后就叫取余了,不叫取模了。。
时间: 2024-10-10 04:35:23