作为伪代码中的一个例子:
if ((a mod 2) == 0)
{
isEven = true;
}
else
{
isEven = false;
}
作为伪代码中的一个例子:
if ((a mod 2) == 0)
{
isEven = true;
}
else
{
isEven = false;
}
当前回答
在Java中,它是%操作符: 15.17.3. 剩余运算符%
注意,在java.lang.Math类中还有floorMod,对于不同符号的参数,它会给出与%不同的结果:
floorMod (int x, int y)
其他回答
在Java中,它是%操作符: 15.17.3. 剩余运算符%
注意,在java.lang.Math类中还有floorMod,对于不同符号的参数,它会给出与%不同的结果:
floorMod (int x, int y)
在不使用模运算的情况下,代码运行得更快:
public boolean isEven(int a){
return ( (a & 1) == 0 );
}
public boolean isOdd(int a){
return ( (a & 1) == 1 );
}
正如其他人指出的那样,%(余数)操作符与数学上的操作符不同 模量运算/函数。
Mod vs % x mod n函数在[0,n)范围内将x映射到n。 而x % n操作符在(-n,n)范围内将x映射到n。
为了有办法用数学上的模运算和不运算 关心x前面的符号1可以用:
((x % n) + n) % n
也许这张图有助于更好地理解它(我一开始很难理解它)
在使用'remainder'操作符%之前,您应该检查规范:
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.17.3
// bad enough implementation of isEven method, for fun. so any worse?
boolean isEven(int num)
{
num %= 10;
if(num == 1)
return false;
else if(num == 0)
return true;
else
return isEven(num + 2);
}
isEven = isEven(a);
另外,mod可以这样使用:
int a = 7;
b = a % 2;
B等于1。因为7% 2 = 1。