## Java program to find the roots of a quadratic equation:

In this post, we will learn how to find the *roots* of a quadratic equation in *Java*. We will take the values as inputs from the user and print the root values.

### How to find the roots of a quadratic equation:

Below is the formula of a quadratic equation:

`ax^2 + bx + c = 0`

Here, *a*, *b* and *c* are all real numbers and *a* can’t be equal to *0*. We can use the below formula to find the roots of this quadratic equation:

`-b ± √(b^2-4ac)/ 2a`

There will be *two* roots. The *±* sign is used for that.

Also, the value under the square root, *b2-4ac* is called the *discriminant*. Based on the value of this *discriminant*, the roots of a quadratic equation is defined.

- If it is equal to
*0*, roots are*equal and both are real numbers*. - If it is greater than
*0*, roots are*different and both are real numbers*. - If it is less than
*0*, roots are*different and both are complex numbers*.

### Java program:

We will take the values of *a*, *b* and *c* as inputs from the user and print the roots for that quadratic equation.

```
import java.util.Scanner;
class Main {
public static void main(String[] args) {
double a, b, c, d;
double firstRoot, secondRoot;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the values of a, b and c: ");
a = sc.nextDouble();
b = sc.nextDouble();
c = sc.nextDouble();
d = b * b - 4 * a * c;
if (d == 0) {
firstRoot = secondRoot = -b / (2 * a);
System.out.format("First root: %.2f, second root: %.2f", firstRoot, secondRoot);
} else if (d > 0) {
firstRoot = -b + Math.sqrt(d) / 2 * a;
secondRoot = -b - Math.sqrt(d) / 2 * a;
System.out.format("First root: %.2f, second root: %.2f", firstRoot, secondRoot);
} else {
double r = -b / (2 * a);
double i = Math.sqrt(-d) / (2 * a);
System.out.format("First root: %.2f+%.2fi\n", r, i);
System.out.format("Second root: %.2f-%.2fi", r, i);
}
}
}
```

Here,

*a*,*b*,*c*variables are to hold the*a*,*b*, and*c*values of the quadratic equation.*d*is to hold the*discriminant*.- We are taking the values of
*a, b,*and*c*from user and it finds the values of*d*by using the above formula. - Based on the value of
*d*, it finds the roots of the quadratic equation. - The
*if*block will run if the value of*d*is equal to*0*. - The
*else if*will run if it is greater than*0*. -
The

*else*block will run if it is less than*0*.- Inside the blocks, we are finding the roots by using the same formula we seen above. We are using
*System.out.format*to print the values of the roots.

- Inside the blocks, we are finding the roots by using the same formula we seen above. We are using

### Sample output:

If you run this program, it will give output as like below:

```
Enter the values of a, b and c:
3
4
5
First root: -0.67+1.11i
Second root: -0.67-1.11i
Enter the values of a, b and c:
1
20
2
First root: -10.10, second root: -29.90
```

### You might also like:

- 4 different Java program to check if a number is a sunny number or not
- Java Arrays binarySearch method explanation with example
- java.util.Arrays.deepEquals method explanation with examples
- java.util.Arrays.fill method explanation with examples
- Java Arrays toString method explanation with example
- Java Program to check if a number is magic number or not
- Java Arrays hashCode() method explanation with examples
- Java Arrays sort method explanation with example
- 7 different Java programs to check if a number is Even or odd