表达式(n % m)
的所有可能结果是什么,其中n
和m
是整数变量?
我认为0
对(m-1)
但不确定。
答案 0 :(得分:1)
假设m
是正整数,则可能值的范围为-min(abs(n), m - 1)
到min(abs(n), m - 1)
,包括在内。
因此,如果n
为零或正数且大于m
(典型情况),则范围将为0
至m-1
。
如果n
为零或为负且其绝对值大于m
,则范围为-(m-1)
到0
,包括在内。
在所有情况下,如果n
的绝对值低于m
,则由m-1
设置的上限由n
设置。也就是说,如果n
为零或正数且小于m
,则范围为0
到n
,包括(等等)。
答案 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之间