模数的所有可能结果?

时间:2013-11-07 11:53:45

标签: java math modulus

表达式(n % m)的所有可能结果是什么,其中nm是整数变量?

我认为0(m-1)但不确定。

3 个答案:

答案 0 :(得分:1)

假设m整数,则可能值的范围为-min(abs(n), m - 1)min(abs(n), m - 1),包括在内。

因此,如果n为零或正数且大于m(典型情况),则范围将为0m-1

如果n为零或为负且其绝对值大于m,则范围为-(m-1)0,包括在内。

在所有情况下,如果n的绝对值低于m,则由m-1设置的上限由n设置。也就是说,如果n为零或正数且小于m,则范围为0n,包括(等等)。

答案 1 :(得分:0)

n % m的结果可以在-m,+ m [。

的范围内

原因:java中模运算符的定义类似于对于所有int值n和m,以下必须始终为真:(n / m)xm +(n%m)== n

但如果n为负数,(n / m) * m将始终等于或大于n,因此n % m必须为负数才能满足上述等式。

规则是:余数运算的结果(如果非零)始终与左操作数的符号相同。

答案 2 :(得分:0)

让我们举个例子 对于正面n和m你的答案是正确的,但在某些情况下......

-1%10=-1
-1%-10=-1
1%-10=1
1%10=1

0 to m-1

之间的正%正回报值

当n <= m时,负0%负返回值为0,否则它将介于0到n + 1之间