1623. Чётные и нечётные числа

 

Дано три целых числа a, b, c. Определить, есть ли среди них хотя бы одно чётное и хотя бы одно нечётное.

 

Вход. Числа a, b, c, не превышающие по модулю 10000 (числа могут быть отрицательными).

 

Выход. Вывести "YES" или "NO".

 

Пример входа

Пример выхода

3 4 5

YES

 

 

РЕШЕНИЕ

условный оператор

 

Анализ алгоритма

Запишем два условия. В первом проверим, есть ли среди трех чисел четное число. Во втором – есть ли среди трех чисел нечетное число. Если оба условия истины, то выводим "YES".

 

Реализация алгоритма

Читаем входные данные. Установим переменной flag значение 0. Если среди трех входных чисел имеется четное, то увеличим flag на 1. Далее, если среди трех чисел имеется нечетное, то также увеличим flag на 1.

Если одно из входных чисел будет нечетным отрицательным, то остаток от его деления на 2 равен -1, а не 1. Поэтому проще перейти к решению задачи на неотрицательных целых числах, взяв входные значения по модулю.

 

scanf("%d %d %d",&a,&b,&c);

flag = 0;

if (a < 0) a = -a;

if (b < 0) b = -b;

if (c < 0) c = -c;

 

if ((a % 2 == 0) || (b % 2 == 0) || (c % 2 == 0)) flag++;

if ((a % 2 == 1) || (b % 2 == 1) || (c % 2 == 1)) flag++;

 

Если оба условия истины, то переменная flag примет значение 2. Выводим результат в зависимости от значения flag.

 

if (flag == 2)

  printf("YES\n");

else

  printf("NO\n");

 

Второе решение. Задачу можно решить при помощи одного составного условия.

 

scanf("%d %d %d",&a,&b,&c);

if (a < 0) a = -a;

if (b < 0) b = -b;

if (c < 0) c = -c;

 

if (((a % 2 == 0) || (b % 2 == 0) || (c % 2 == 0)) &&

    ((a % 2 == 1) || (b % 2 == 1) || (c % 2 == 1)))

  printf("YES\n");

else

  printf("NO\n");

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);   

    int a = con.nextInt();

    int b = con.nextInt();

    int c = con.nextInt();

   

    int flag = 0;

    if (a % 2 == 0 || b % 2 == 0 || c % 2 == 0) flag++;

    if (a % 2 != 0 || b % 2 != 0 || c % 2 != 0) flag++;

 

    if (flag == 2)   

      System.out.println("YES");

    else

      System.out.println("NO");

    con.close();

  }

}   

 

Python реализация

 

a,b,c = map(int,input().split())

flag = 0

if ((a % 2 == 0) or (b % 2 == 0) or (c % 2 == 0)) : flag += 1

if ((a % 2 == 1) or (b % 2 == 1) or (c % 2 == 1)) : flag += 1

if (flag == 2) :

  print("YES")

else :

  print("NO")