我发现相同的 mod 操作会根据所使用的语言产生不同的结果。
在 Python 中:
-1 % 10
产生9
在 C 中它产生 -1 !
- 哪个是正确的模数?
- 如何让 C 中的 mod 操作和 Python 中的一样?
最佳答案
- 两种变体都是正确的,但是在数学(尤其是数论)中,Python 的 modulo是最常用的。
- 在 C 中,您执行
((n % M) + M) % M
以获得与 Python 中相同的结果。例如。((-1 % 10) + 10) % 10
。请注意,它仍然适用于正整数:((17 % 10) + 10) % 10 == 17 % 10
,以及 C 实现的两种变体(正余数或负余数)。
关于python - C 和 Python - 模 (%) 运算的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1907565/