Вася любит полениться. Особенно ему нравится, когда в году появляется такой лишний денёк, которого обычно не бывает. Напишите программу, которая поможет Васе определить, удастся ли ему побездельничать в определённом году или нет.
Формат ввода
Одно число — год.
Формат вывода:
Одно слово «YES» (удастся) или «NO» (не удастся).
Пример
Ввод
2022
Вывод
NO
Решение
Интересная задача, сложность которой напрямую зависит от стратегии решения.
Можно найти признаки високосных годов (да, их больше одного) и попробовать записать их в том порядке, в котором они даны. Получится достаточно развесистая конструкция, корая прекрасно тренирует навык использования if/else.
Можно записать эти признаки в обратном порядке, отсекая ненужные варианты, тоже хорошая тренировка для оттачивания навыков и изучения приема “это мы уже отсекли в прошлой проверке”.
А можно попробовать составить одну сложную проверку, которая сразу даст ответ на поставленный вопрос.
Посмотреть код
Решение снизу-вверх
year = int(input())
yes = False
if year % 4 == 0:
if year % 100 == 0:
if year % 400 != 0:
yes = False
else:
yes = True
else:
yes = True
else:
yes = False
if yes is True:
print('YES')
else:
print('NO')
Решение сверху-вниз
year = int(input())
yes = False
if year % 400 == 0:
yes = True
elif year % 100 == 0:
yes = False
elif year % 4 == 0:
yes = True
else:
yes = False
if yes:
print('YES')
else:
print('NO')
Сложное условие
year = int(input())
if year % 4 or not year % 100 and year % 400:
print('NO')
else:
print('YES')