【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+"没有实数根");
}
}
}