第1关:练习-Java分支结构综合练习一之一元二次方程求解
任务描述
本关任务:变量a、b、ca、b、c分别为方程ax^2+bx+c=0ax2+bx+c=0中a、b、ca、b、c的值,求解该一元二次方程的值,将该值四舍五入后保留两位小数后输出。
判断方程有几个根:
\varDelta=b^2-4acΔ=b2−4ac 若\varDelta>0Δ>0,则该方程有两个根,若\varDelta=0Δ=0,则该方程只有一个跟,若\varDelta < 0Δ<0,则该方程无解。
ax^2+bx+c=0ax2+bx+c=0的求值公式为:
\frac{-b\pm\sqrt{b^2-4ac}}{2a}2a−b±b2−4ac
若方程有两个根,将这两个值四舍五入后保留两位小数,输出格式为:
该方程有两个根
x1 = x1,x2 = x2
注意:x1 为\frac{-b+\sqrt{b^2-4ac}}{2a}2a−b+b2−4ac的值,x2 为\frac{-b-\sqrt{b^2-4ac}}{2a}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 dt = b*b-4*a*c;
// 第二步:如果方程有两个根,计算这两个值,将其按照题目所给的格式输出
if(dt>0){
double t1 = ((-b) + Math.sqrt(dt))/(2*a);
double t2 = ((-b) - Math.sqrt(dt))/(2*a);
System.out.println("该方程有两个根");
System.out.print("x1 = ");
System.out.print(String.format("%.2f",t1));
System.out.print(",x2 = ");
System.out.println(String.format("%.2f",t2));
}else
// 第三步:如果方程只有一个跟,计算出该值,将其按照题目所给的格式输出
if(dt==0){
double x = (-b)/(2*a);
System.out.println("该方程只有一个根");
System.out.print("x = ");
System.out.println(String.format("%.2f",x));
}else
// 第四步:若方程无解,将其按照题目所给的格式输出
if(dt<0){
System.out.println("该方程无解");
}
/********** End **********/
}
}