Найти все годы в данном столетии с одинаковым календарем - Free Pascal
Формулировка задачи:
Есть такое свойство календаря. Он повторяется каждые 28 лет.
Это объясняется тем, что в году 52 недели и один день, если бы не было високосных лет.
Тогда бы календарь повторялся через каждые 7 лет. Но в високосном году 52 недели и два дня.
Високосные годы повторяются один раз в четыре года. "Лишние" дни превращаются в неделю за 7 лет, значит, получается 7 * 4 = 28. В 28-ми годах получается целое число недель. Программе задаётся некоторый год, она находит все годы в данном столетии, календарь который будет совпадать с календарём заданного года.
Решение задачи: «Найти все годы в данном столетии с одинаковым календарем»
textual
Листинг программы
var century, year, prev : integer; begin readln(year); century := (year div 100) * 100; year := (year mod 100 mod 28) + century; repeat writeln(year); prev := year; year := ((year mod 100) + 28) mod 100 + century; until year < prev; end.
Объяснение кода листинга программы
- Вводится текущий год.
- Вычисляется век, в котором находится текущий год.
- Текущий год приводится к виду, в котором он будет выводиться.
- Начинается цикл, который будет повторяться до тех пор, пока не будет выведено число меньше предыдущего.
- В цикле выводится текущий год.
- При каждой итерации цикла текущий год увеличивается на 28 или 29, в зависимости от того, какой год был текущим.
- Цикл завершается, когда текущий год становится меньше предыдущего.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д