java:计算一元二次方程a𝑥2+𝑏𝑥+𝑐=0的解。a,b,c的值从键盘输入。注意,要区分一个实根、两个不同实根、无实数解时字符串表示的虚数解。系统可用的开方公式Math.sqrt( )。
时间: 2023-05-16 15:06:01 浏览: 108
好的,根据输入的a、b、c的值,我们可以使用公式求解一元二次方程的解。首先,我们需要计算判别式delta,即delta=b^2-4ac。然后,根据delta的值,可以判断方程的解的情况:
1. 当delta>0时,方程有两个不同实根,可以使用公式x1=(-b+Math.sqrt(delta))/(2*a)和x2=(-b-Math.sqrt(delta))/(2*a)求解。
2. 当delta=0时,方程有一个实根,可以使用公式x=-b/(2*a)求解。
3. 当delta<0时,方程无实数解,此时我们可以使用字符串表示虚数解,即x1=(-b+Math.sqrt(-delta))/(2*a)+"i"和x2=(-b-Math.sqrt(-delta))/(2*a)+"i"。
下面是Java代码实现:
import java.util.Scanner;
public class Main {
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();
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.println("方程有两个不同实根,分别为:" + x1 + "和" + x2);
} else if (delta == 0) {
double x = -b / (2 * a);
System.out.println("方程有一个实根,为:" + x);
} else {
String x1 = (-b / (2 * a)) + "+" + (Math.sqrt(-delta) / (2 * a)) + "i";
String x2 = (-b / (2 * a)) + "-" + (Math.sqrt(-delta) / (2 * a)) + "i";
System.out.println("方程无实数解,虚数解为:" + x1 + "和" + x2);
}
}
}
希望这个回答能够帮到你!