
Обозначим дни недели числами от 1 (понедельник) до 7 (воскресенье) соответственно. По известному m
— дню недели первого числа текущего месяца — определите день недели числа n. Задачу необходимо решить без использования условных операторов (в том числе без тернарного оператора ?: в С++) и\или циклов. Pascal.ABC.net

Ответы на вопрос

Ответ:
enum days
{
Понедельник,
Вторник,
Среда,
Четверг,
Пятница,
Суббота,
Воскресенье
}



Для решения данной задачи без использования условных операторов или циклов можно воспользоваться арифметическими вычислениями, так как дни недели повторяются в цикле каждую неделю.
Давайте представим, что каждая неделя состоит из 7 дней, и будем использовать остаток от деления для определения дня недели числа n. Для этого мы можем вычислить, сколько дней прошло с начала месяца до числа n (n - 1), добавить это значение к известному дню недели первого числа месяца (m - 1), а затем взять остаток от деления суммы на 7.
Формула будет выглядеть следующим образом:
Здесь \mod обозначает операцию остатка от деления.
Например, пусть m = 2 (вторник), и нам нужно найти день недели для n = 15. Используя формулу:
Таким образом, 15-е число месяца при m = 2 будет выпадать на четверг (4-й день недели).
Вы можете использовать данную формулу для решения задачи без циклов и условных операторов.


Похожие вопросы








Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili