Дана следующая информация (однако, вы можете проверить ее самостоятельно):
1 января 1900 года – понедельник.
В апреле, июне, сентябре и ноябре 30 дней. В феврале 28 дней, в високосный год – 29. В остальных месяцах по 31 дню.
Високосный год – любой год, делящийся нацело на 4, однако последний год века (ХХ00) является високосным в том и только том случае, если делится на 400.
Сколько воскресений выпадает на первое число месяца в двадцатом веке (с 1 января 1901 года до 31 декабря 2000 года)?
Перебирая годы и месяцы в году, будем к исходному количеству прибавлять количество дней в месяце.
day += month_days[month];
Каждый февраль високосного года (смотрите задание) будем добавлять еще один день:
if (month == 1 && year % 4 == 0)
day++;
Если после прибавления дней в месяце количество дней делится на семь, то найдено еще одно воскресенье первого числа месяца.
Измеряем время работы программы
Для измерения времени работы программы подключаем библиотеку time.h:
#include <time.h>
С помощью функции clock() измеряем время начала (begin) и окончания (end) работы программы. В итоге время работы будем находить как разность между ними.
CLOCKS_PER_SEC – это константа, сохраненная в библиотеке и зависящая от типа устройства, на котором запускается программа. В данном случае – это просто 1000
Ответ и скорость работы программы (проект Эйлера - 19 задача)
В итоге ответ на 19 задачу проекта Эйлера составил 171, программа считает ответ мгновенно.
По традиции хотелось бы выразить глубочайшую признательность Сергею Балакиреву за его титанический труд по созданию бесплатных курсов и в частности, за “Язык программирования C/C++ для начинающих“.
Есть вопросы, господа? Отвечаем спокойно, четко и только по делу))