8891. Ровно одно условие из двух

 

Для заданного целого числа n выведите YES, если выполняется ровно одно из следующих условий и NO в противном случае.

·        число n четное;

·        число n отрицательное и кратное трем.

 

Вход. Одно целое число n.

 

Выход. Выведите YESили NOв зависимости от выполнения условий.

 

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

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

22

YES

 

 

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

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

7

NO

 

 

РЕШЕНИЕ

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

 

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

В переменной flag будем подсчитывать количество выполненных условий. Изначально присвоим flag = 0.

·        Если число n четное, то увеличим flag на 1;

·        Если число n отрицательное и кратное трем, то увеличим flag на 1;

Если flag = 1, то выполняется ровно одно из условий, выводим YES. Иначе выводим NO.

 

Пример

Пусть n = 22. Число четное. Число не является отрицательным и кратным 3. Выполняется только одно условие.

 

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

Читаем входное число n.

 

scanf("%d", &n);

 

Проверяем два условия. Если условие выполняется, то увеличиваем flag на 1.

 

flag = 0;

if (n % 2 == 0) flag++;

if (n < 0 && n % 3 == 0) flag++;

 

В зависимости от значения переменной flag выводим ответ.

 

if (flag == 1) puts("YES");

else puts("NO");