以a%b为例,求得的余数的符号与a的保持一致,因此求模运算符求得的余数有存在负数的可能性。
r=a%b有a=k*b+r
使r1=(r+b)%b=(r%b+b%b)%b=r%b%b=r%b=r,注意但是此时由于r+b,所以r若为负数,那么最后得到的是正数的余数。若r为正数,则不影响结果。
所以一般谨慎地话求余r=(a%b+b)%b
以a%b为例,求得的余数的符号与a的保持一致,因此求模运算符求得的余数有存在负数的可能性。
r=a%b有a=k*b+r
使r1=(r+b)%b=(r%b+b%b)%b=r%b%b=r%b=r,注意但是此时由于r+b,所以r若为负数,那么最后得到的是正数的余数。若r为正数,则不影响结果。
所以一般谨慎地话求余r=(a%b+b)%b