Для решения задачи мы будем вычислять количество точек с целочисленными координатами (x, y), которые находятся внутри или на границе круга с радиусом r и центром в начале координат (0, 0). Уравнение круга в этом случае: x² + y² ≤ r².
Подход к решению:
Проверка каждой точки: Мы будем перебирать возможные значения x и y в диапазоне от -r до r. Для каждой точки (x, y) проверим, удовлетворяет ли она условию x² + y² ≤ r².
Симметрия круга: Круг симметричен относительно обоих координатных осей. Поэтому, если точка (x, y) попадает в круг, то также попадают точки (-x, y), (x, -y) и (-x, -y). Однако, чтобы учесть все точки, нужно аккуратно обработать граничные случаи, такие как оси и центр круга.
Оптимизация: Вместо проверки всех точек в квадрате [-r, r]×[-r, r], можно ограничиться четвертью круга и использовать симметрию для сокращения количества операций.
Реализация:
Вот пример программы на Python, которая решает эту задачу:
def count_integer_points_in_circle(r):
count = 0
for x in range(-r, r + 1):
for y in range(-r, r + 1):
if x * x + y * y