На вход подаются три целых числа. Выведите true, если среди них есть ровно два чётных, и false - если нет. Sample Input: 4 6 7 Sample Output: true

import java.util.Scanner;
class MyProgram {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int num1 = scan.nextInt();
            int num2 = scan.nextInt();
            int num3 = scan.nextInt();
            if((num1 % 2 == 0 & num2 % 2 == 0) & !(num3 % 2 == 0)) {
            System.out.println("true");
                } else {
            System.out.println("false");
            }
        }
    }

Пожалуйста только направьте не помогайте прямо хотелось бы самому дойти


Ответы (1 шт):

Автор решения: Anton Shchyrov
if (
  ((num1 + num2 + num3) % 2 == 1) & 
  ((mum1 % 2 == 0) || (num2 % 2 == 0) || (num3 % 2 == 0))
) {
  System.out.println("true");
} else {
  System.out.println("false");
}

Пояснение. Сумма трех чисел нечетная в двух случаях:

  1. Все числа нечетные
  2. Ровно одно число нечетное

Второй вариант - это наш, а первый нужно исключить. Чтобы исключить первый вариант хотя бы одно число должно быть четным.

В итоге первое условие проверяет на нечетность всю сумму, а второе проверяет, что хотя бы одно число должно четное

→ Ссылка