In algebra, a quadratic equation (from Latin quadratus ‘square‘) is any equation that can be rearranged in standard form as:

ax2 + bx + c = 0

This java program will try to find the roots of this quadratic equation based on the parameters a, b and c. This parameters are required to be given as input from the console and then the program show if there is root(s) (solutions) x1 and x2 for this equation.

There are three cases based on the values of the Discriminant (b2-4ac):

• Positive Discriminant -> There are two roots x1 and x2 which are solution of the given equation
• Discriminant is equal to Zero -> There is only one root x1 which is solution of the given equation
• Negative Discriminant -> Then there are no real roots. Rather, there are two distinct (non-real) complex roots

```import java.util.Scanner;

public static void main(String[] args) {
// ax^2 + bx + c = 0
int a, b, c;

try(Scanner in = new Scanner(System.in))
{
System.out.println("Please give integer for a, b, and c: ");
a = in.nextInt();
b = in.nextInt();
c = in.nextInt();
}

System.out.println("Now the program will try to find x roots ");
System.out.format("%d*x^2+%d*x+%d=0", a, b, c );
System.out.println();

// Discriminant
// b^2-4ac
double d = Math.pow(b, 2) - 4*a*c;

// find roots
if(d > 1) {
// Final find of distinct roots
// x1 = (-b+√D)/2a    x2 = (-b-√D)/2a
double x1 = (-b + Math.sqrt(d))/2*a;
double x2 = (-b - Math.sqrt(d))/2*a;

System.out.println("x1: " + x1);
System.out.println("x2: " + x2);
}
else if(d == 0) {
// both roots are real and equal
double x1 = (-b + Math.sqrt(d))/2*a;
System.out.println("Root is = "+ x1);
}
else {
// roots are complex. They have real and imaginary part
double real = -b / (2*a);
double imaginary = Math.sqrt(-d) / (2*a);
System.out.format("x1 = %f + i(%f)\n",
real, imaginary);
System.out.format("x2 = %f - i(%f)\n",
real, imaginary);
}

}
}
```

Output:

``````1
7
-78
Now the program will try to find x roots