为什么模数不能帮助找到负奇数?
Why does the modulus not help to find negative odd number?
我在做什么: 用零替换数组中的奇数(值)。
问题: 执行以下代码时,它仅替换 positive 数字,忽略 negative。
代码:
public static int[] nullOddValues(int[] array) {
int[] resultArray = new int[array.length];
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 != 0) {
resultArray[i] = 0;
} else {
resultArray[i] = array[i];
}
}
return resultArray;
}
当您(可能)想要测试 array[i]
时,您测试循环变量 i
是否异常
if (array[i] % 2 != 0) {
在 X returns [0-X)
上使用模数
正 X (X > 0) -> 它会 return 0+
负 X (X < 0) -> 它会 return 0-
对于你的问题,我建议使用位运算符
if((i & 1) == 0)
这将 return true
对于偶数(正数和负数),因为它正在检查数字的最后一位。
我在做什么: 用零替换数组中的奇数(值)。
问题: 执行以下代码时,它仅替换 positive 数字,忽略 negative。
代码:
public static int[] nullOddValues(int[] array) {
int[] resultArray = new int[array.length];
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 != 0) {
resultArray[i] = 0;
} else {
resultArray[i] = array[i];
}
}
return resultArray;
}
当您(可能)想要测试 array[i]
i
是否异常
if (array[i] % 2 != 0) {
在 X returns [0-X)
正 X (X > 0) -> 它会 return 0+
负 X (X < 0) -> 它会 return 0-
对于你的问题,我建议使用位运算符
if((i & 1) == 0)
这将 return true
对于偶数(正数和负数),因为它正在检查数字的最后一位。