на с++ Министр культуры определил, что фестивали можно проводить только в

На с++ Министр культуры обусловил, что фестивали можно проводить только в субботу 5-го или субботу 6-го числа хоть какого месяца, а также в четверг каждого числа, кратного n (n изменяется от года к году), хоть какого месяца.

Нужно найти все вероятные даты проведения фестивалей на ближний год, если первое января был k-ый денек недели (где k=1 - пн, а k=7 - воскресенье).

Формат входных данных
Вводятся целые неотрицательные числа n (1 lt;= n lt;= 31) и k (1 lt;= k lt;= 7)
Формат выходных данных
Вывести даты в столбик в формате: "14 of June", где June - заглавие месяца (июнь)
Примечания
Наименования месяцев: January (январь), February (февраль), March (март), April (апрель), May (май), June (июнь), July (июль), August (август), September (сентябрь), October (октябрь), November (ноябрь), December (декабрь).

В феврале 28 дней.

Образцы
входные данные выходные данные
27 5
6 of February
6 of March
27 of May
5 of June
6 of November

Задать свой вопрос
1 ответ

Метод решения

Почти никакой арифметики - проходим по всем денькам в году, начиная с первого денька, проверяем условия, обновляем ответ.


Детали

Для удобства заведем постоянный массив чисел - количество дней в каждом месяце. С его помощью мы будет перескакивать из заключительного денька 1-го месяца в 1-ый день последующего.

Нам не необходимо перебегать из декабря в январь!

Также заведем массив строк, хранящий названия каждого месяца.

Будем поддерживать номер текущего денька, номер текущего месяца и каким днем недели является текущий денек. Текущий денек и день недели у нас нумеруются с единицы, месяц - с нуля.

Пока мы не прошли весь декабрь, проверяем условия. 1-ый вариант: dayInWeek == суббота, day == 5 либо day == 6. 2-ой вариант: dayInWeek == четверг, day % n == 0.

Пытаемся перейти на последующий денек. Если следующий денек начнется теснее в следующем месяце, увеличим месяц, денек сбросим до единицы. Ну и обновим денек в неделе: dayInWeek = dayInWeek % 7 + 1.

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт