Прошу подтолкнуть к верному решению.) "Подсчет пятниц 13"

С клавиатуры задается год, месяц и день. Необходимо подсчитать количество прошедших пятниц 13, со дня своего рождения! Задачка интерессная, хотелось самому сделать, но сколько я ни ломал голову, так ничего и не придумал... единственную закономерность которую я нашел, это зависимость годов относительно месяца в котором была пятница 13... дупустим в марте 1992 года была пятница 13, в следующий раз в марте оня будет через 6 лет, затем еще через 11, потом через 6, через 5, через 6, через 11, через 6, через 5, через 6 и снова через 11... не знаю надо ли это при решении задачи, но это пока что единственная закономерность, которую я нашел)))
6 ответов

Никаких закономерностей и выдумок, тупая лобовая симуляция. Единственное, что надо знать - каким днем недели был Ваш день рождения. Если напрямую неизвестно, то можно посчитать по текущей дате. А суть симуляции - "метод отрывного календаря". Начинаем с дня рождения и идем по одному дню, пока не попадем в нужную дату. В одной переменной храним день недели, в 3 других - текущие день, месяц и год.


По другому точно никак? и кстати не напомните случайно каким образом проверяется високосный год или нет... =)


Допустим. Язык то какой?


Вообще паскаль... конечно было бы хорошо сразу на нем увидеть как это делается, но мне бы хотя бы подсказку!))


if (a mod 400=0) or ((a mod 4=0) and (a mod 100<>0))
вот Вам проверка на высокосность. Можно по-другому, но просто нету необходимости - по-другому надо, если "олимпиадные ограничения" (к примеру, миллион лет), а простое решение укладываеться в секунду даже для 10-15 тысяч лет.


Благодарю за помощь! Пойду дальше мучиться с задачкой... =))