Предмет: Информатика,
автор: Anatolmomba
Решить в целых числах уравнение ( ax + b ) : ( cx + d ) = 0.
Входные данные
Вводятся 4 числа: a, b, c и d; c и d не равны нулю одновременно.
Выходные данные
Необходимо вывести все решения, если их число конечно, “NO” (без кавычек), если решений нет, и “INF” (без кавычек), если решений бесконечно много.
Примеры
входные данные
1
1
2
2
выходные данные
NO
входные данные
2
-4
7
1
выходные данные
2
Ответы
Автор ответа:
0
( ax + b ) : ( cx + d ) = 0
Сводим уравнение к системе:
{ ax + b = 0
{ cx + d ≠ 0
{ ax = -b
{ cx ≠ -d
Можно учесть все случаи, используя больше 16 условий, но я предпочту более оптимальный вариант, так как знаю как зависит количество корней линейного уравнения от коэффициентов.
Программа на паскале:
var a, b, c, d: real;
begin
read(a, b, c, d);
if (c = 0) and (d = 0) then writeln('NO')
else if (a = 0) and (b = 0) then writeln('INF')
else if a = 0 then writeln('NO')
else if c = 0 then writeln(-b/a)
else if b/a = d/c then writeln('NO')
else writeln(-b/a)
end.
Сводим уравнение к системе:
{ ax + b = 0
{ cx + d ≠ 0
{ ax = -b
{ cx ≠ -d
Можно учесть все случаи, используя больше 16 условий, но я предпочту более оптимальный вариант, так как знаю как зависит количество корней линейного уравнения от коэффициентов.
Программа на паскале:
var a, b, c, d: real;
begin
read(a, b, c, d);
if (c = 0) and (d = 0) then writeln('NO')
else if (a = 0) and (b = 0) then writeln('INF')
else if a = 0 then writeln('NO')
else if c = 0 then writeln(-b/a)
else if b/a = d/c then writeln('NO')
else writeln(-b/a)
end.
Похожие вопросы
Предмет: Английский язык,
автор: dzhavadzade
Предмет: Английский язык,
автор: misabelekov
Предмет: Математика,
автор: innaa1683
Предмет: Литература,
автор: настя1345445734
Предмет: Математика,
автор: AliceFoxesAd