练习-Java分支结构综合练习一之一元二次方程求解

任务描述

本关任务:变量abc分别为方程ax2+bx+c=0中abc的值,求解该一元二次方程的值,将该值四舍五入后保留两位小数后输出。

判断方程有几个根:

Δ=b2−4acΔ>0,则该方程有两个根,若Δ=0,则该方程只有一个跟,若Δ<0,则该方程无解。

ax2+bx+c=0的求值公式为:

2ab±b2−4ac​​

若方程有两个根,将这两个值四舍五入后保留两位小数,输出格式为:

 
 
  1. 该方程有两个根
  2. x1 = x1x2 = x2

注意:x1 为2ab+b2−4ac​​的值,x2 为2abb2−4ac​​的值,且两个值中间的逗号为中文逗号。

若只有一个跟,输出格式:

 
 
  1. 该方程只有一个根
  2. x = x

若方程无解,输出格式:

 
 
  1. 该方程无解

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

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 **********/
    }
}

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121182128