|
发表于 2023-12-22 16:13:06
|
显示全部楼层
首先,我们需要通过键盘输入获取方程的系数a、b和c。可以使用Scanner类来实现:
- 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();
-
- // 调用计算根的方法
- calculateRoots(a, b, c);
- }
-
- public static void calculateRoots(double a, double b, double c) {
- double delta = b * b - 4 * a * c; // 计算判别式
-
- if (delta > 0) { // 有两个不同的实数根
- double root1 = (-b + Math.sqrt(delta)) / (2 * a);
- double root2 = (-b - Math.sqrt(delta)) / (2 * a);
-
- System.out.printf("方程的根为:%.2f, %.2f", root1, root2);
- } else if (delta == 0) { // 有一个重根
- double root = -b / (2 * a);
-
- System.out.printf("方程的根为:%.2f", root);
- } else { // 没有实数根,有共轭虚根
- double realPart = -b / (2 * a);
- double imaginaryPart = Math.sqrt(-delta) / (2 * a);
-
- System.out.printf("方程的根为:%.2f+%.2fi, %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart);
- }
- }
- }
复制代码
这段代码通过调用`nextDouble()`方法从控制台获取用户输入的系数a、b和c,然后调用`calculateRoots()`方法计算方程的根,并将结果打印出来。在`calculateRoots()`方法中,我们首先计算判别式delta,然后根据delta的值分别处理三种情况:有两个不同的实数根、有一个重根、没有实数根(即共轭虚根)。最后使用`printf()`方法将结果打印出来。
希望以上代码能够帮到你!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|