任务描述
本关任务:变量a、b、c分别为方程ax2+bx+c=0中a、b、c的值,求解该一元二次方程的值,将该值四舍五入后保留两位小数后输出。
判断方程有几个根:
Δ=b2−4ac 若Δ>0,则该方程有两个根,若Δ=0,则该方程只有一个跟,若Δ<0,则该方程无解。
ax2+bx+c=0的求值公式为:
2a−b±b2−4ac
若方程有两个根,将这两个值四舍五入后保留两位小数,输出格式为:
该方程有两个根
x1 = x1,x2 = x2
注意:x1 为2a−b+b2−4ac的值,x2 为2a−b−b2−4ac的值,且两个值中间的逗号为中文逗号。
若只有一个跟,输出格式:
该方程只有一个根
x = x
若方程无解,输出格式:
该方程无解
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
import java.util.Scanner;
/**
* 任务:求解该方程的值。
* 类名为:Equation
*/
public class Equation {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double a = reader.nextDouble();
double b = reader.nextDouble();
double c = reader.nextDouble();
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:判断方程有几个根
double t = b*b-4*a*c;
// 第二步:如果方程有两个根,计算这两个值,将其按照题目所给的格式输出
if(t>0){
double x1 = ((-b) + Math.sqrt(t))/(2*a);
double x2 = ((-b) - Math.sqrt(t))/(2*a);
System.out.println("该方程有两个根");
System.out.printf("x1 = %.2f,x2 = %.2f",x1,x2);
}
// 第三步:如果方程只有一个跟,计算出该值,将其按照题目所给的格式输出
else if(t==0){
double x = (-b)/(2*a);
System.out.println("该方程只有一个根");
System.out.printf("x = %.2f",x);
}
// 第四步:若方程无解,将其按照题目所给的格式输出
else{
System.out.print("该方程无解");
}
/********** End **********/
}
}