Нахождение точки пересечения прямых, заданных уравнениями a₁x + b₁y + c₁ = 0 и a₂x + b₂y + c₂ = 0
a1, b1, c1, a2, b2, c2 = map(int, input().split())
def f(ax, ay, bx, by):
return ax * by - ay * bx
sg = f(a1, b1, a2, b2)
y = -f(a1, c1, a2, c2) / sg
x = -f(c1, b1, c2, b2) / sg
print(x, y)
#include <bits/stdc++.h>
using namespace std;
double f(double ax, double ay, double bx, double by) {
return ax * by - ay * bx;
}
int main() {
double a1, b1, c1, a2, b2, c2;
cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;
double sg = f(a1, b1, a2, b2);
double y = -f(a1, c1, a2, c2) / sg;
double x = -f(c1, b1, c2, b2) / sg;
cout << x << " " << y << endl;
return 0;
}
Для прямых, заданных уравнениями:
Точка пересечения вычисляется по формулам Крамера:
Ввод: a₁ b₁ c₁ a₂ b₂ c₂ — коэффициенты уравнений
Вывод: x y — координаты точки пересечения
1 -1 0 1 1 -2
Прямые: x - y = 0 и x + y - 2 = 0 → пересечение в (1, 1)
Вывод: 1.0 1.0