请使用java语言实现:编制一元二次方程式AX2+BX+C=0的求根程序。程序有以下功能: 输入A、B、C三个系数;-200<=A、B、C<=200 2.输出根的性质的信息:包括两个相等实根、两个不相等的实根、一个实根、两个虚根、有无数根、无根等。 输出根的值
时间: 2023-12-22 13:04:36 浏览: 85
好的,以下是求解一元二次方程的 Java 代码实现:
```java
import java.util.Scanner;
public class QuadraticEquation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一元二次方程的系数 A:");
double a = scanner.nextDouble();
System.out.print("请输入一元二次方程的系数 B:");
double b = scanner.nextDouble();
System.out.print("请输入一元二次方程的系数 C:");
double c = scanner.nextDouble();
scanner.close();
// 计算判别式
double delta = b * b - 4 * a * c;
// 判断方程的根的性质
if (delta > 0) {
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
System.out.printf("该方程有两个不相等实根:x1 = %.2f, x2 = %.2f%n", x1, x2);
} else if (delta == 0) {
double x = -b / (2 * a);
System.out.printf("该方程有两个相等实根:x = %.2f%n", x);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-delta) / (2 * a);
System.out.printf("该方程有两个虚根:x1 = %.2f+%.2fi, x2 = %.2f-%.2fi%n", realPart, imaginaryPart, realPart, imaginaryPart);
}
// 判断方程是否有实根
if (a == 0 && b == 0 && c == 0) {
System.out.println("该方程有无数个实根");
} else if (a == 0 && b != 0) {
System.out.println("该方程无实根");
} else if (delta >= 0) {
// do nothing
} else {
System.out.println("该方程无实根");
}
// 输出方程的根的值
if (delta > 0) {
System.out.printf("方程的根的值为:x1 = %.2f, x2 = %.2f%n", (-b + Math.sqrt(delta)) / (2 * a), (-b - Math.sqrt(delta)) / (2 * a));
} else if (delta == 0) {
System.out.printf("方程的根的值为:x = %.2f%n", -b / (2 * a));
} else {
System.out.printf("方程的根的值为:x1 = %.2f+%.2fi, x2 = %.2f-%.2fi%n", -b / (2 * a), Math.sqrt(-delta) / (2 * a), -b / (2 * a), Math.sqrt(-delta) / (2 * a));
}
}
}
```
代码中的 QuadraticEquation 类实现了求解一元二次方程的程序。程序使用 Scanner 类从标准输入读取方程的系数 A、B、C,然后计算方程的根,并输出根的性质信息和根的值。
程序的具体实现方式与之前介绍的 Python 版本类似,使用求根公式计算方程的根,判断方程的根的性质,并输出根的值。值得注意的是,在 Java 中需要使用 Math 类的 sqrt 方法计算平方根。
你可以将代码复制到 Java 编辑器中运行,输入方程的系数即可得到结果。
阅读全文