若a < 0,则 a mod b = a%b+b。
因为 c 语言中负数取模的结果等于对应正数取模的相反数,
则 a % b = - ( (-a) % b ),而右式等价于 -(-a - nb),直到 -a - nb > 0 且 -a - (n+1)b < 0。且右式可化简为 a + nb。
又 a mod b = a + mb,直到a + mb > 0 且 a + (m-1)b < 0 ,根据这4个不等式,我们可知,n = m-1,而我们要的结果相当于是 a + (n+1)b。
所以 a mod b = a%b+b。