Вопрос задан 23.06.2026 в 08:14. Предмет Информатика. Спрашивает Азизян Эдик.

Добрый день! Помогите, пожалуйста.
Даны координаты трёх точек плоскости. Проверить, образуют ли они прямоугольный треугольник.
Язык: С++
Заранее спасибо.

Перейти к ответам

Ответы на вопрос

Отвечает Казакевич Дима.

Нужно проверить теорему Пифагора по квадратам длин сторон. Сами длины находить через корень не обязательно.

Если точки \( A(x_1, y_1) \), \( B(x_2, y_2) \), \( C(x_3, y_3) \), то считаем:

\[ AB^2 = (x_2 - x_1)^2 + (y_2 - y_1)^2 \]

\[ BC^2 = (x_3 - x_2)^2 + (y_3 - y_2)^2 \]

\[ AC^2 = (x_3 - x_1)^2 + (y_3 - y_1)^2 \]

Треугольник прямоугольный, если сумма двух меньших квадратов равна наибольшему. Ещё нужно проверить, что точки не совпадают и не лежат на одной прямой.

Пример на C++:


long long dist2(long long x1, long long y1, long long x2, long long y2) {
long long dx = x2 - x1;
long long dy = y2 - y1;
return dx * dx + dy * dy;
}

int main() {
long long x1, y1, x2, y2, x3, y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

long long a = dist2(x1, y1, x2, y2);
long long b = dist2(x2, y2, x3, y3);
long long c = dist2(x1, y1, x3, y3);

if (a == 0 || b == 0 || c == 0) {
cout << "NO";
} else if (a + b == c || a + c == b || b + c == a) {
cout << "YES";
} else {
cout << "NO";
}
}

Здесь \( a \), \( b \), \( c \) — это не стороны, а квадраты сторон. Поэтому условие Пифагора записано без корней.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Информатика 14.03.2025 07:08 161 Дегтяренко Диана

Последние заданные вопросы в категории Информатика

Задать вопрос