因为取模问题 被疯狂RE,,,特此记录
Java
基本原理:
dividend % dividor = dividend - dividend / dividor * dividor;
很明显,返回值会出现负数。
java 支持整型,浮点型的mod
CPP
基本原理:(与Java一致)
dividend % dividor = dividend - dividend / dividor * dividor;
cpp仅仅支持 整型 的mod
Python
-
操作数全为正整数
X和Y均为正整数 X/Y的结果为Z
则X%Y = X-(X*Z) -
X和Y均为有一个为负整数,一个为正整数 X/Y结果的绝对值为Z,
X%Y 的结果是 |X| -(|Y| * Z),符号位和Y相同。
注意: python中:-1//4 = -1
-
两个操作数都为负数值的大小和两个操作数绝对值取模的结果相同,不过符号相反
取模运算,结果的符号由第二个操作数的符号决定。
参考文献: