Розбір
Аналіз алгоритму
Запишемо дві умови. У першій перевіримо, чи є серед трьох чисел парне число. У другій – чи є серед трьох чисел непарне число. Якщо обидві умови істинні, то виводимо "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++; if (flag == 2) printf("YES\n"); else printf("NO\n");
Якщо обидві умови істинні, то змінна flag
прийме значення 2. Виводимо результат залежно від значення flag
.
Друге рішення. Задачу можна вирішити за допомогою однієї складної умови.
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")