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

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

Показать ответ
Ответ:
Arse12345
Arse12345
10.12.2020 22:48

Объяснение:

Последовательность дней недели периодична с периодом 7, поэтому номер дня недели можно найти, взяв остаток от деления: (номер дня недели первого числа + сколько Такое решение будет давать верный ответ для всех дней недели кроме воскресенья: для воскресений будет выведен ноль (а не 7). Решить это можно, перенумеровав все номера дней недели с нуля, а не с единицы.

m - 1 – номер дня недели первого числа месяца (считая с 0)

n - 1 – пройдёт от первого числа  

(m + n - 2) mod 7 – номер нужного дня недели (считая с 0)

(m + n - 2) mod 7 + 1 – ответ.

Программа (PascalABC.NET):

begin

 var n := ReadInteger;

 var m := ReadInteger;

 print((m + n - 2) mod 7 + 1)

end.

Пример ввода:

7

7

Пример вывода:

6

(Действительно, 1 апреля 2018 года – воскресенье, а сегодня, 7 апреля – суббота)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота