![]() |
|
Модераторы: bsa |
![]()
|
|
| dyachenco |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.9.2011 Репутация: нет Всего: нет |
Вычислить количество пятниц, приходящихся на 13-е числа
а) ХХ cториччя; в) столетие с номером n, где n-данное натуральное число. Нужно делать на С++ или С Буду благодарен за любую помоч. #include <stdio.h> #include <conio.h> #include <math.h> int main(void) { int m,y,c,s,n=0; printf("Vvedite ctoletie\n"); scanf("%d",&c); c--; for(y=0; y<100; ++y) for(m=1; m<=12; ++m) { s=fmod(((2.6*m-0.2)+13+y+fmod(y,4)+fmod(c,4)-2*c),7); if (s==5) n++; } printf("V etom stoletie %d piatnitc 13",n); getch(); } Вот что получилось но поч не работает. Это сообщение отредактировал(а) dyachenco - 8.10.2011, 15:09 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Это смотря какой календарь...
Для 20 века еще можно предположить что будет григорианский, (хотя даже и он в России начался при юлианском), а для 18 века, или скажем 11 века, какой календарь использовать? Так-что уточните задание, и с уточненным прямиком в центр помощи! Это сообщение отредактировал(а) volatile - 6.10.2011, 00:32 |
|||
|
||||
| dyachenco |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.9.2011 Репутация: нет Всего: нет |
Уточнять нечего.Дано завдання а календар на взгляд выбрать какой лутше подойдьот. |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Держи, коли за любую... По теме. Что конкретно не понятно? Что уже пробовал и что не получилось? Решать всё за тебя никто не будет. -------------------- ![]() |
|||
|
||||
| dyachenco |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.9.2011 Репутация: нет Всего: нет |
Неплохая идея,друг, но ето глупо. Нужна прога которая дело делать будет а не std::cout << 0; Добавлено через 54 секунды
Конкретно я незнаю з чего начать. |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Начать надо с первого января, вестимо. Далее высчитываешь, исходя из дня недели первого января, все тринадцатые числа и проверяешь их дни недели. Количество дней в месяце можно посмотреть в календаре. Есть пара исключений. Все года кратные 100 не являются високосными, за исключением годов кратных 400. -------------------- ![]() |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
http://liveworkspace.org/code/b000f10fa4af...8994166ca4de766
Это сообщение отредактировал(а) borisbn - 6.10.2011, 09:26 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
а что у них было? трехдневка? -------------------- undefined |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
да. в понедельник выходной. во вторник готовились к работе. в среду готовились к выходному. ничего лишнего. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
||||
|
||||
| ShadowC |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 23.6.2011 Репутация: нет Всего: нет |
мне кажется в этой задаче надо предположить что год начинается 1-го января,1-ое января это понедельник,хотя для частоты эксперемента можно вывести первый день как 1+rand()%7, а дальше уже исходить из этого как я полагаю 3 цикла,1-й-год ,2-й месяц,3-й неделя и если получается так что в третьем цикле 5 итерация совпадет с 13-й итерацией во втором то увеличить счетчик,если время будет напишу как это все будет...
мне вот только интересно, надо предпологать что каждый 4-ий год весокосный или нет? P.S. для счетчика месяцев можно использовать 13-ти элементный массив,в котором в каждом элементе будет хранится колличество дней определенного месяца Это сообщение отредактировал(а) ShadowC - 6.10.2011, 16:56 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
ShadowC, borisbn уже предложил вариант решения - даже перебором отработает достаточно быстро. Там перебираются 1901 - 1999 годы, но изметить с какого по какой год перебирать несложно. Если хочешь сопимизировать, учитывай следующее: Имеется 14 вариантов календаря в зависимости дня недели (7 вариантов невисокосного года, 7 вариантов високосного года) Для каждого варианта вычисляешь число пятниц, 13 Варианты повторяются с периодом 28 лет (невисоконые варианты встречаются по 3 раза, високосные по одному разу) Но цикл сбивается когда последний код столетия (XIX век =>1801- 1900 годы, XX => 1901-2000, XXI => 2001-2100) не делится на 400. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
чойта?
если в "человеческой"/"нормальной" логике это так (хотя не совсем - нужно учитывть ещё каждый 100-й а каждый 400-й - http://support.microsoft.com/kb/214019), то почему программа должна это игнорировать ? ты не поверишь, но в году 12 месяцев. Уж поверь Это сообщение отредактировал(а) borisbn - 6.10.2011, 22:37 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
удалил. для ТС и этого выше крыши...
Это сообщение отредактировал(а) volatile - 6.10.2011, 23:58 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |