К задачам

Количество точек пересечения двух окружностей

СредняяАлгоритмы
Лучше работает на десктопе
ГеометрияЧисла с плавающей точкойГраничные случаи

Реализуйте функцию, которая возвращает число точек пересечения двух окружностей.

Каждая окружность задаётся координатами центра и радиусом. Верните:

  • 0, если окружности не пересекаются;
  • 1, если они касаются;
  • 2, если они пересекаются в двух точках;
  • -1, если окружности совпадают и имеют бесконечно много общих точек.

Для чисел с плавающей точкой используйте устойчивые сравнения.

Signature

def count_circle_intersections(
    x1: float,
    y1: float,
    r1: float,
    x2: float,
    y2: float,
    r2: float,
) -> int:

Примеры

Пример 1

Вход:
x1 = 0
y1 = 0
r1 = 3
x2 = 5
y2 = 0
r2 = 3
Выход:2

Две обычные точки пересечения

Пример 2

Вход:
x1 = 0
y1 = 0
r1 = 3
x2 = 6
y2 = 0
r2 = 3
Выход:1

Внешнее касание

Пример 3

Вход:
x1 = 0
y1 = 0
r1 = 3
x2 = 7
y2 = 0
r2 = 3
Выход:0

Окружности не соприкасаются

Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
05:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
Количество точек пересечения двух окружностей — Алгоритмы задача — ML Mentor