Вася любит полениться. Особенно ему нравится, когда в году появляется такой лишний денёк, которого обычно не бывает. Напишите программу, которая поможет Васе определить, удастся ли ему побездельничать в определённом году или нет.
Формат ввода
Одно число — год.
Формат вывода:
Одно слово «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')
Ниже написал более легкий код для понимания, который соответствует примеру из подсказки.