代码改变世界

被除数、除数、商、余数的正负号规律二

2015-01-15 14:07  GarfieldEr007  阅读(1330)  评论(0编辑  收藏  举报

mod()是取余数函数

mod(15, 7) = 1

mod(15, -7) = -6

mod(-15, 7) = 6

mod(-15, -7) = -1

 

15 = 7 * 2 + 1

15 = (-7) * (-3) + (-6)

-15 = 7 *(-3) + 6

-15 = (-7)*2 + (-1) 

将被除数、除数、商、余数分别记作mnpm, n, p, n >= 0

则有:

m = n * p1 + q1

m = (-n) * (-p2) + (-q2)

-m = n * (-p3) + q3

-m = (-n) * p4 + (-q4)

 

被除数、除数、商、余数的正负符号情况如下:

被除数

除数

余数

+

+

+

+

+

-

-

-

-

+

-

+

-

-

+

-

 

规律1除数的符号 余数的符号。

规律2被除数、除数的两个符号之间的关系:

  Case 1:同号时,商的符号为正(符号同或);

  Case 2:异号时,商的符号为负(符号同或)。

规律3商要尽可能小(正数越靠近0越小,负数越远离0越小)。余数用来补缺,余数的绝对值 除数的绝对值。

规律4商 p1 = p4 -p2 = -p3

规律5余数 q1 + (-q4) = 0 (-q2) + q3 = 0

q1 + q3 = n (-q2) + (-q4) = -n q1 + |(-q2)| = n q3 + |(-q4)| = n 

(其中| |是绝对值符号)