java - 为什么在这种情况下我们需要乘法,如何用加法代替?
问题描述
我的朋友给我发了一个简单的 java 数学任务来查找插入的 3 中的任何 2 个数字是否是偶数。我做到了,但后来无法理解它是如何工作的。
我将所有三个数字相加,然后找到它们总和的余数。它有效,但如果所有数字都是奇数,它仍然显示为真。所以我还需要一个条件。我想知道为什么这里只有乘法有效,为什么没有办法添加数字并改变条件以获得正确的结果。
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
int firstNumber = scanner.nextInt();
int secondNumber = scanner.nextInt();
int thirdNumber = scanner.nextInt();
int sumOfNumbers = firstNumber + secondNumber + thirdNumber;
boolean if2NumbersEven = sumOfNumbers % 2 != 0 &&
// Why is only multiplication needed here, addition does not work
firstNumber * secondNumber % 2 == 0;
System.out.println(if2NumbersEven);
}
PS我明白这个问题有多愚蠢,我今天花了几个小时学习java,我的大脑真的停止工作了。
解决方案
您可以将其余部分除以3 个数字中的 2 个。如果它返回 1,则意味着 3 个数字中恰好有 2 个是偶数。像这样:
int restsOfDivisionsBy2 = (firstNumber % 2) + (secondNumber % 2) + (thirdNumber % 2);
boolean if2NumbersEven = (restsOfDivisionsBy2 == 1);
推荐阅读
- javascript - 检查一个javascript数组是否包含另一个数组的所有元素或部分元素值
- javascript - 在 webpack 捆绑库上模拟 fbasyncInit 行为
- reactjs - 在哪里调用将在渲染之前发生的 Ajax 请求?
- postgresql - 在命令行中执行postgresql命令时如何将参数与文件一起传递?
- biztalk - 根据源的存在向目标添加额外的节点
- swift - 滚动视图上容器内的动态 UIButton 操作不起作用
- python-3.x - elasticsearch中的布尔转换
- php - PHP - 如何仅从特定值累加点
- c# - 如何使用 GetType 获取类的类型
- python - 如何检查字符串是否在文本文件中?(Python)