现在的位置: 首页 > 综合 > 正文

关于负数取模的问题

2018年04月04日 ⁄ 综合 ⁄ 共 195字 ⁄ 字号 评论关闭

若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。

【上篇】
【下篇】

抱歉!评论已关闭.