Определить, когда в последний раз день рождения Н. Некрасова выпадал на субботу - C (СИ)
Формулировка задачи:
М. Некрасов родился 10 декабря 1821 г. Когда в последний раз день рождения М. Некрасов выпадал на субботу, если известны текущая дата d.m.g?
Помогите написать код, не могу понять как выполнить это задание.
Решение задачи: «Определить, когда в последний раз день рождения Н. Некрасова выпадал на субботу»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> /*Н.А. Некрасов родился 10 декабря 1821 г. Когда в последний раз день рождения Н.А. Некрасова выпадал на субботу,если известны текущая дата 20 декабря 2015г?*/ int main() { int y, n = 0;//y-годы,n-счетчик смещений for(y = 2015; y > 2000; --y){//от нынешнего года смещаемся по одному назад if(y % 4 == 0)//если год был високосный ++n; //прибавляем еще одно смещение if(n == 5) //если количество смещений достигло 5 printf("10 December %d\n", y); //печатаем искомую дату ++n;//если еще не достигло 5-ти,прибавляем 1 } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими операциями.
- Определение переменной
y
для хранения текущего года и переменнойn
для подсчета количества смещений. - Начало цикла, который будет выполняться, пока текущий год больше 2000.
- Проверка, является ли текущий год високосным (делится на 4 без остатка).
- Если год високосный, увеличивается значение переменной
n
на 1. - Проверка, достигло ли количество смещений 5.
- Если достигло, выводится искомая дата (10 декабря).
- Увеличение значения переменной
n
на 1 для последующей проверки. - Цикл продолжается до тех пор, пока текущий год больше 2000.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д