MS13. Решение квадратных уравнений

Условие задачи:
Каждая четвёрка чисел входного потока представляет собой квадратное уравнение в такой форме $ax^2+bx+c=d.$ Выпишите через запятую решения этих уравнений (если это возможно).

Тесты:

Входной поток чисел Корни уравнений
1 -6 8 0 1 12 20 0 2, 4; -10, -2;
1 1 -6 -2 1 -2 10 0 -2.56155, 1.56155; нет корней;
2 -0.5 2.2 0 5 0 -25 0 нет корней; -2.23607, 2.23607;

Код на языке C++:

Код на языке Java:

Решение задачи:
Для решения этой задачи используется цикл, который выполняется до тех пор, пока в потоке подряд расположены четыре числа, четыре коэффициента, которые стоят перед неизвестными в квадратном уравнении классического вида: [latex]ax^{2}\pm bx\pm c=d[/latex]. Для самого нахождения корней использовалась известная формула [latex]x_{1,2}=\frac{-b-\sqrt{b^{2} \pm 4a(c-d)}}{2a}[/latex]. В коде, для удобства, она была разделена на две части: нахождение дискриминанта [latex]D[/latex] и нахождение самих корней, что возможно (на вещественной числовой оси) лишь при условии [latex]D>0[/latex].

Решение задачи на C++: Ideone
Решение задачи на Java: Ideone

Related Images:

Добавить комментарий