Найти все годы в данном столетии с одинаковым календарем - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Есть такое свойство календаря. Он повторяется каждые 28 лет. Это объясняется тем, что в году 52 недели и один день, если бы не было високосных лет. Тогда бы календарь повторялся через каждые 7 лет. Но в високосном году 52 недели и два дня. Високосные годы повторяются один раз в четыре года. "Лишние" дни превращаются в неделю за 7 лет, значит, получается 7 * 4 = 28. В 28-ми годах получается целое число недель. Программе задаётся некоторый год, она находит все годы в данном столетии, календарь который будет совпадать с календарём заданного года.

Решение задачи: «Найти все годы в данном столетии с одинаковым календарем»

textual
Листинг программы
  1. var century, year, prev : integer;
  2. begin
  3.   readln(year);
  4.   century := (year div 100) * 100;
  5.   year := (year mod 100 mod 28) + century;
  6.   repeat
  7.     writeln(year);
  8.     prev := year;
  9.     year := ((year mod 100) + 28) mod 100 + century;
  10.   until year < prev;
  11. end.

Объяснение кода листинга программы

  1. Вводится текущий год.
  2. Вычисляется век, в котором находится текущий год.
  3. Текущий год приводится к виду, в котором он будет выводиться.
  4. Начинается цикл, который будет повторяться до тех пор, пока не будет выведено число меньше предыдущего.
  5. В цикле выводится текущий год.
  6. При каждой итерации цикла текущий год увеличивается на 28 или 29, в зависимости от того, какой год был текущим.
  7. Цикл завершается, когда текущий год становится меньше предыдущего.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы