【问题标题】:Module of negative numbers? [duplicate]负数模? [复制]
【发布时间】:2025-11-21 12:30:01
【问题描述】:

为什么abs(N)小于除数D的负数N的模变成一个小的正数而不是-N。

假设我们以 -3 % 5 为例,为什么是 2 而不是 -3?

【问题讨论】:

  • 这取决于您选择如何定义模运算。现代 C++(我认为是 C)同意你的观点;但从数学上讲,将其定义为始终为正更简单。
  • 您好,请尽量使您的标题成为您问题的简短摘要,通常不适合在标题中放置示例。

标签: math modulo operation


【解决方案1】:

一开始-3%5不等于2,等于-3。此外,-3( 5*0 + (-3)) 等于 9。不幸的是,您的整个计算都是错误的。模数先用绝对值计算,然后进行符号变化。如; -7%5=-2 在 C++ 中。模数先除以 7 到 5,然后检查符号并改变符号为负或正。

【讨论】: