Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд \(n\) (где \(n\) – целое число), вызывающая передвижение Черепахи на \(n\) единиц в том направлении, куда указывает её голова; Назад \(n\) (где \(n\) – целое число), вызывающая передвижение в противоположном голове направлении; Направо \(m\) (где \(m\) – целое число), вызывающая изменение направления движения на \(m\) градусов по часовой стрелке, Налево \(m\) (где \(m\) – целое число), вызывающая изменение направления движения на \(m\) градусов против часовой стрелки.
Запись Повтори \(k\) [Команда1 Команда2 … КомандаS] означает, что последовательность из \(S\) команд повторится \(k\) раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 21 [Вперёд 31 Направо 60]
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
Решение:
Черепаха в результате исполнения алгоритма нарисует правильный шестиугольник со стороной \(31.\) Найдём уравнения прямых для сторон этого шестиугольника.

Уравнение прямой \(AB\) очень простое: \(x = 0.\)
Прямая \(BC\) наклонена к оси абсцисс под углом \(30^\circ.\) Её уравнение будет $$y = \frac{x}{\sqrt{3}} + 31$$
Прямая \(CD\) наклонена к оси абсцисс под углом \(-30^\circ.\) Её уравнение будет $$y = -\frac{1}{\sqrt{3}} \left( x - \frac{31 \sqrt{3}}{2} \right) + \frac{93}{2}$$
Для прямой \(DE\) уравнение тоже довольно простое: $$x = 31 \sqrt{3}$$
Прямая \(EF\) наклонена к оси абсцисс под углом \(30^\circ.\) Её уравнение будет $$y = \frac{1}{\sqrt{3}} \left( x - 31 \sqrt{3} \right)$$
Наконец уравнение для прямой \(AF\) будет $$y = - \frac{x}{\sqrt{3}}$$
Теперь несложно написать программу, подсчитывающую необходимое количество точек:
Python
q = 0
for x in range(200):
for y in range(-100, 200):
q += x > 0 and x < 31 * 3**0.5 \
and y < x / 3**0.5 + 31 and y > (x - 31 * 3**0.5) / 3**0.5 \
and y < -1 / 3**0.5 * (x - 31 * 3**0.5 / 2) + 93 / 2 \
and y > - x / 3**0.5
print(q)
Ответ: \(2476\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене