Общий год является годом , что не високосный год , и где первый и последний день года в тот же день. Особый общий год является один , который начинается в понедельник и так заканчивается на понедельник , а также.
Ваша задача состоит в том, чтобы создать программу / функцию, которая при задании года в качестве входных данных находит ближайший специальный общий год и выводит себя, если это общий год. Если год настолько близок к предыдущему, как год к нему, выведите больший.
вход
Целое число, представляющее год для проверки в диапазоне 1600 <= x <= 2100
.
Выход
Целое число, представляющее ближайший специальный общий год.
Контрольные примеры
2017 -> 2018
2018 -> 2018
1992 -> 1990
1600 -> 1601
2100 -> 2103
1728 -> 1731 (lies between 1725 and 1731)
Заметки
Все 54 года в данном диапазоне уже показаны в связанной статье Википедии. Я также предоставлю их здесь для справки:
1601, 1607, 1618, 1629, 1635, 1646, 1657, 1663, 1674, 1685, 1691
1703, 1714, 1725, 1731, 1742, 1753, 1759, 1770, 1781, 1787, 1798
1810, 1821, 1827, 1838, 1849, 1855, 1866, 1877, 1883, 1894, 1900
1906, 1917, 1923, 1934, 1945, 1951, 1962, 1973, 1979, 1990
2001, 2007, 2018, 2029, 2035, 2046, 2057, 2063, 2074, 2085, 2091
2103 (Needed for 2097 to 2100)
a year that is not a leap year and where the first and last day of the year are on the same day
Вторая часть этого определения является избыточной. Все не високосные годы начинаются и заканчиваются в один и тот же день и составляют ровно 52 недели и один день (365 дней).
6, 11, 11
. То есть через 6 лет после первого - еще один, через 11 лет - еще один, через 11 лет - еще один, через 6 лет - еще один и т. Д.