在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 

在涉及到异号数字取模运算时一定要小心,取余取模的差别。