Вопрос по информатике:
В некотором государстве текущий год начался с понедельника . Суббота и воскресенье являются выходными дням, а другие дни недели - будни. Кроме того Глава государства издал указ о том, что каждый день года, номер которого (считая от начала года) заканчивается цифрой 0 , является государственным праздником . Будний день , в который не отмечается никакой государственный праздник , считается рабочим днём . Требуется определить, следует ли выходить на работу в день с заданным номером
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 10.06.2017 20:00
- Информатика
- remove_red_eye 14400
- thumb_up 46
Ответы и объяснения 1
Можно немного оптимизировать, чтоб обойтись одним сравнением вместо двух. Для этого надо "сдвинуть" все дни так чтобы понедельник был 0, вторник - 1,..., суббота - 5, воскресенье - 6. Для этого вычесть из номера дня единицу, а потом уже брать остаток от деления. После этого его можно просто сравнивать на больше или равно 5.
Чтобы проверить день на предмет праздника надо вычислить последнюю цифру номера дня (в десятичной системе счисления), то есть посчитать остаток от деления на 10 и сравнить с нулём.
Пример функции на С, которая возвращает 1 если выходить на работу в заданный день надо и 0 если не надо:
int need_to_work (int day_number)
{
/* сначала разберемся с праздником */
if ((day_number % 10) == 0) {
return 0; // праздник - работать не надо
}
/* "сдвигаем" номер дня как описывал выше */
day_number = day_number - 1; // можно day_number--;
/* проверка на выходные */
if ((day_number % 7) >= 5) {
return 0; // выходной - работать не надо
}
/* все дни, которые не попали в предыдущие условия - рабочие */
return 1;
}
- 11.06.2017 22:03
- thumb_up 30
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.