在python 中取模运算为 a%b (不同的是,在golang 中,% 是取余)
比较麻烦的是一旦符号不同,取余与取模运算结果存在差别;
取余取模运算均follow 以下公式
余数 = 被除数 - (被除数/除数)* 除数 (一定注意没有约分!!!)
差别就在于:
1) 取余运算 (被除数/除数)取整时向 0 点方向;
2)取模运算(被除数/除数)取整时向负无穷方向;
取模时(在python中 % ):
-5 mod 3 : -5 -(-5/3)*3 = -5 - (-2)*3 = -5 + 6 = 1
5 mod -3 : 5 - (5/-3)*-3 = 5 - (-2)*(-3)= -1
取余时
-5 rem 3 : -5 - (-5/3)*3 = -5 - (-1)*3 = -5 + 3 = -2
5 rem -3 : 5 - (5/-3) * (-3) = 5 - (-1) * (-3) = 5 - 3 = 2
在涉及到异号数字取模运算时一定要小心,取余取模的差别。