Компьютерный год
Опубликовано: 19 Сентября, 2022
Вам дано, что 1 января 2001 года был понедельник. Давайте назовем год гиком, если 1 января этого года выпадает на воскресенье. Там будет дано два года « а » и « б ». Задача — найти нет. гиковских лет между этими двумя годами (включая «а» и «б»)
Примеры:
Input: a = 2001, b = 2013
Output: 2Input: a = 2020, b = 2024
Output: 1
Подход: Идея состоит в том, чтобы сохранить дневную смену для каждого месяца, а затем вычислить ответ. Выполните следующие шаги, чтобы решить проблему:
- Инициализируйте переменную count как 0 .
- Переберите диапазон [a, b], используя переменную i , и выполните следующие задачи:
- Инициализируйте переменную y как i-1.
- Инициализируйте переменную ans как (y + y/4 – y/100 + y/400) % 7.
- Если ans равно 6 , увеличьте значение count на 1.
- После выполнения вышеуказанных шагов выведите значение count в качестве ответа.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N)
Вспомогательное пространство: O(1)