【发布时间】:2025-11-21 12:30:01
【问题描述】:
为什么abs(N)小于除数D的负数N的模变成一个小的正数而不是-N。
假设我们以 -3 % 5 为例,为什么是 2 而不是 -3?
【问题讨论】:
-
这取决于您选择如何定义模运算。现代 C++(我认为是 C)同意你的观点;但从数学上讲,将其定义为始终为正更简单。
-
您好,请尽量使您的标题成为您问题的简短摘要,通常不适合在标题中放置示例。
为什么abs(N)小于除数D的负数N的模变成一个小的正数而不是-N。
假设我们以 -3 % 5 为例,为什么是 2 而不是 -3?
【问题讨论】:
一开始-3%5不等于2,等于-3。此外,-3( 5*0 + (-3)) 等于 9。不幸的是,您的整个计算都是错误的。模数先用绝对值计算,然后进行符号变化。如; -7%5=-2 在 C++ 中。模数先除以 7 到 5,然后检查符号并改变符号为负或正。
【讨论】: