19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
|
|
1 | |
Задача на определение номера дня недели n-го дня года26.03.2012, 13:22. Показов 4449. Ответов 10
Метки нет (Все метки)
Подскажите пожалуйста метод решения следующей задачи:
Пусть n-целое число от 1 до 365, m-целое число от 1 до 7. Число n указывает номер дня года, а m -на какой день недели приходится 1 января (1-понедельник, 2-вторник и т. д.) Получить число 1, 2, ..., 7 в зависимости от того, на какой день недели приходится n-й день невисокосного года. Задача линейная, т.е использовать ветвления, циклы, массивы и т.п. нельзя.
0
|
26.03.2012, 13:22 | |
Ответы с готовыми решениями:
10
Определить номер дня недели для заданного номера дня года Определить номер дня недели для заданного номера дня года Найти номер дня недели К-го дня года, если в этом году 1 января было днем недели с номером N Определить номер дня недели для заданного дня года |
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
|
|
26.03.2012, 13:30 [ТС] | 3 |
Нет, число m показывает на какой день недели приходится именно 1 января, т. е. 1-й день года. Видимо, это поможет для составления формулы.
0
|
26.03.2012, 13:36 | 4 |
Так это вообще просто.
k = n mod 7 result = (((m-1) + k) mod 7 ) + 1 или в одну строку: (((m-1) + (n mod 7)) mod 7) + 1 Пример: n = 5 (5-й день года) m = 2 (первое января - вторник) k = 5 ((2-1) + 5) mod 7 = 6 6 + 1 = 7 - воскренье
1
|
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
|
|
26.03.2012, 13:54 [ТС] | 5 |
Точно. Странно, что сам не догадался. Спасибо большое!
Добавлено через 14 минут Только прибавлять единицу не надо, т. е. result=(m-1) + (n mod 7)) mod 7 По календарю проверял. Получается так.
0
|
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
|
|
26.03.2012, 14:04 [ТС] | 7 |
Но тогда в вашем примере:
n=5, m=2 Пятый день года, в котором 1 января вторник - суббота, а не воскресение. Опять же если не прибавлять единицу, то если воскресенье вместо 7 получится 0 .
0
|
26.03.2012, 14:15 | 8 | |||||
Да, вы правы, есть ошибка. Написал
проверочный тест на c#
Необходимо от k тоже отнимать единицу. result=(((m-1) + (n mod 7) - 1) mod 7) + 1
1
|
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
|
|
26.03.2012, 14:24 [ТС] | 9 |
Проверил. Да, теперь правильно. Спасибо за помощь.
0
|
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
|
|
26.03.2012, 14:32 [ТС] | 11 |
0
|
26.03.2012, 14:32 | |
26.03.2012, 14:32 | |
Помогаю со студенческими работами здесь
11
Выведите номер дня недели для данного дня года Определить номер дня недели для K-го дня года Определить номер дня недели для K-го дня года Определить номер дня недели для K-го дня года Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |