根据 “1.2.4. Integer Funcitons and Elementary Number Theory -- TAOCP”
x mod y = x - y[x/y] for any real numbers(这里[]表示高斯函数,即the floor of x/y)
本例中 x = 21, y = -5,x/y=-4.2,[x/y]=-5 (注意:这里/不表示C++的除法,而是数学上的)
因此 x mod y = 21 - (-5)*(-5) = -4
x mod y 即 C++中的 x%y ,因此 21%-5 = -4
然后在C++中 21/-5 = (21 - 21%-5) / -5 = -5