对于被除数 $a$ 和除数 $n$,若有 $a=nq+r,\ q\in\mathbb{Z},\ |r|<|q|$
则余数 $r=a-nq$
不同的编程语言对于商 $q$ 的求法不同
C++
大多数编程语言中都使用截断除法,即商向 0 取整 $q=\operatorname{trunc}\left(\frac{a}{n}\right)$。因此,余数和被除数符号一致。
$r=a-n \operatorname{trunc}\left(\frac{a}{n}\right)$
例:
1 |
|
Python
在 Python 中,商向下取整 $q=\left\lfloor\frac{a}{n}\right\rfloor$。因此,余数和除数符号一致。
$r=a-n \left\lfloor\frac{a}{n}\right\rfloor$
例:
1 | print(-6 % 5) # q=-2, r=4 |