b^2 - 4ac 称作一元二次方程的判别式。如果它是正值,那么一元二次方程就有两个实数根。如果它为0,方程式就只有一个根。如果它是负值,方程式无实数根。
编写程序,提示用户输入a、b和c的值,并且显示基于判别式的结果。如果这个判别式为正,显示两个根。如果判别式为0,显示一个根。否则,显示“The equation has no real roots”(该方程式无实数根)。
注意:可以使用Math.pow(x,0.5) 来计算。
下面是一些运行示例:Enter a, b, c: 1.0 3 1
The equation has two roots -0.381966 and -2.61803
Enter a, b, c: 1 2.0 1
The equation has one root - 1.0
Enter a, b, c: 1 2 3
The equation has no real roots
package Chapter_03;
import java.util.Scanner;
public class Code_01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a, b, c:");
double a = input.nextDouble();
double b = input.nextDouble();
double c = input.nextDouble();
double r1 = -b + Math.pow(b*b - 4 * a *c, 0.5);
double R1 = r1 / 2 * a;
double r2 = -b - Math.pow(b*b - 4 * a *c, 0.5);
double R2 = r2 / 2 * a;
double root = b * b - 4 * a * c;
if(root > 0) {
System.out.println("The equation has two roots " + String.format("%.6f",R1) + "and " + String.format("%.6f",R2));
}else if(root == 0) {
System.out.println("The equation has one root " + R1);
}else
System.out.println("The equation has no real roots");
}
}
调试结果
Enter a, b, c:1.0 3 1 The equation has two roots -0.381966and -2.618034
Enter a, b, c:1 2.0 1 The equation has one root -1.0
Enter a, b, c:1 2 3 The equation has no real roots