首页 > 解决方案 > 为什么在这种情况下我们需要乘法,如何用加法代替?

问题描述

我的朋友给我发了一个简单的 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,我的大脑真的停止工作了。

标签: java

解决方案


您可以将其余部分除以3 个数字中的 2 个。如果它返回 1,则意味着 3 个数字中恰好有 2 个是偶数。像这样:

int restsOfDivisionsBy2 = (firstNumber % 2) + (secondNumber % 2) + (thirdNumber % 2);

boolean if2NumbersEven = (restsOfDivisionsBy2 == 1);

推荐阅读