【Java】求一元二次方程根

【Java】求一元二次方程根

效果

两个根
一个根
无实数根

代码

package com.cxl.demo19_Exception;
//求一元二次方程根
import java.util.Arrays;
import java.util.Scanner;

public class Demo19_01_Calculate {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一元二次方程的3个系数(用空格隔开):");
        String str = sc.nextLine();
        int[] arr = strToInt(str);  //转整存储方法
        //计算
        calculate(arr[0],arr[1],arr[2]);
    }
    //String转int型
    public static int[] strToInt(String str){
        String[] s = str.split(" ");
        int[] arr = new int[s.length];
        for (int i = 0; i < s.length; i++) {
            arr[i] = Integer.parseInt(s[i]);
        }
        return arr;
    }
    //计算方程式
    public static void calculate(int a, int b, int c){
        String equation = a+"x^2+"+b+"x+"+c+"=0";    //方程式
        //公式
        double y = b * b - 4 * a *c;
        double sqrt = Math.sqrt(y);
        if (y > 0){
            //求根公式
            double x1 = (-b+sqrt)/(2*a);
            double x2 = (-b-sqrt)/(2*a);
            System.out.print(equation+"的解为"+"["+x1+","+x2+"]");
        }else if (y == 0){
            //一个实数根/两实数根相等
            double x = (-b-sqrt)/(2*a);
            System.out.println(equation+"的解为"+x);
        }else {
            System.out.println(equation+"没有实数根");
        }
    }
}