Дан порядковый номер дня года (отсчет идет с 1-го января). Требуется вывести номер дня недели этого...

Тематика Информатика
Уровень 5 - 9 классы
дни недели календарь C++ без if порядковый номер дня день года программирование алгоритм
0

Дан порядковый номер дня года (отсчет идет с 1-го января). Требуется вывести номер дня недели этого дня, если 1 января — понедельник. (Запрещено использовать команду if) Формат входных данных Вводится номер дня года — целое число k (1≤k≤365). Формат выходных данных Выведите номер дня недели для данного дня года (понедельник — 1, вторник — 2, ., воскресенье — 7).На С++

avatar
задан 3 часа назад

2 Ответа

0

Для решения задачи определения дня недели по порядковому номеру дня в году, зная, что 1 января — это понедельник, можно использовать арифметику по модулю. Поскольку в неделе 7 дней, то нам нужно использовать операцию взятия остатка от деления на 7.

Основная идея состоит в том, что если 1 января — это понедельник (номер дня недели 1), то каждый следующий день будет сдвигаться на один день недели вперед. Таким образом, чтобы определить, какой это день недели по номеру дня в году, достаточно взять остаток от деления порядкового номера дня на 7. Однако, поскольку неделя начинается с 1, а остаток от деления на 7 дает результат от 0 до 6, нам нужно будет добавить 1 к результату.

Вот как это можно реализовать на C++:

#include 

int main() {
    int k;
    std::cin >> k;
    
    // Вычисляем день недели
    int dayOfWeek = (k - 1) % 7 + 1;

    // Выводим результат
    std::cout 

avatar
ответил 2 часа назад
0

Для решения данной задачи без использования оператора if можно воспользоваться простым математическим методом. Мы знаем, что 1 января — понедельник, а каждая неделя состоит из 7 дней. Таким образом, чтобы определить номер дня недели для заданного дня года, можно использовать следующее выражение:

int k; // переменная для номера дня года int dayOfWeek; // переменная для номера дня недели

cin >> k; // ввод номера дня года dayOfWeek = (k + 0) % 7 + 1; // вычисляем номер дня недели

cout

avatar
ответил 2 часа назад

Ваш ответ

Вопросы по теме