Java 求模表达式的数学方法

Java 求模表达式的数学方法,java,modulo,Java,Modulo,下面是在java中使用欧几里德除法求模(n,d)的两个表达式 (d + (n % d)) if (n < 0) (n%d) if n > 0 (d+(n%d))如果(n0 我的问题是, 我不清楚,在写上面的表达式之前如何进行数学思考,如果n如果您想记住n%d的作用,它将返回一个范围(-d,d)内的值,该值与mod d到n一致,并匹配n的符号 如果你想知道如何得到一个肯定的结果(或者严格地说,是一个匹配d符号而不是n符号的结果),有一种比If更简单的方法 由于(n%d)在(-

下面是在java中使用欧几里德除法求模(n,d)的两个表达式

(d + (n % d))  if (n < 0)

(n%d)  if n > 0
(d+(n%d))如果(n<0)
(n%d)如果n>0
我的问题是,


我不清楚,在写上面的表达式之前如何进行数学思考,如果n如果您想记住
n%d
的作用,它将返回一个范围
(-d,d)
内的值,该值与mod d到n一致,并匹配n的符号

如果你想知道如何得到一个肯定的结果(或者严格地说,是一个匹配d符号而不是n符号的结果),有一种比
If
更简单的方法

由于
(n%d)
(-d,d)
范围内,这意味着
(n%d)+n
(0,2d)
范围内,因此
((n%d)+n)%d
[0,d)
范围内的值,与n相等


因此,
((n%d)+n)%d
就是你要找的。

我不太理解你的困境。