Постановка задачи
Каждая четвёрка чисел входного потока представляет собой квадратное уравнение в такой форме [latex]ax^2+bx+c=d.[/latex] Выпишите через запятую решения этих уравнений (если это возможно).
Входные данные:
значения переменных
Выходные данные:
корни [latex]x_{1}[/latex], [latex]x_{2}[/latex], [latex]x_{3}[/latex] и нет корней
Тесты
№ | Входной поток чисел | Корни уравнений |
1 | 2 -3 4 1 0 13 10 0 | нет корней; |
2 | 2 -0.5 2.2 0 5 0 -25 0 | нет корней; -2.23607, 2.23607; |
3 | 1 3 -4 -1 2 -7 11 0 | -3.79128784747792, 0.7912878474779199; нет корней; |
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { double a, b, c, d, D; double x1,x2,x3; Scanner s =new Scanner(System.in); while(s.hasNext()){ a= s.nextInt(); b= s.nextInt(); c= s.nextInt(); d= s.nextInt(); D=b*b-4*a*(c-d); if(D>0) { x1=(-b-Math.sqrt(D))/(2*a); x2=(-b+Math.sqrt(D))/(2*a); System.out.println(x1+", "+x2+"; "); } else if(D==0) { x3=(-b)/(2*a); System.out.println(x3+"; "); } else System.out.println("no roots"+"; "); } } } |
Ссылка на решение задания на онлайн компиляторе Ideone.com
Описание решения
Объявляем переменные a, b, c, d, D, x1, x2, x3 типа double, где a, b, c, d — коефициенты квадратического уравнения, D — дискриминант, а x1, x2, x3 — корни. Создаем цикл while, в котором производится решение квадратического уравнения. В нем проверяем, если дискриминант больше нуля, выводим корни x1 и x2. Если дискриминант равен нулю, то находим x3, иначе, если дискриминант отрицателен — не имеем корней (no roots).