注:一元二次方程为默认a!=0,此处并未声明为一元二次方程因此存在a=0的情况。
使用JDK:Java SE Development Kit 17.0.2;
运行环境:DOS
一、代码
package moment;
import java.util.Scanner;
public class moment1 {
public static void main(String[] args) {
double a,b,c;
while(true) {
System.out.println("Please enter a:");
Scanner sc = new Scanner(System.in);
a=sc.nextDouble();
System.out.println("Please enter b:");
Scanner sc1 = new Scanner(System.in);
b=sc1.nextDouble();
System.out.println("Please enter c:");
Scanner sc2 = new Scanner(System.in);
c=sc2.nextDouble();
//获得三个值给a,b,c
if(a==0&&b!=0&&c!=0) {
double x=-c/b;
String A = String .format("%.2f",x);
System.out.println("此一元二次方程的解为"+A);
break;
//a等于0时的情况
}
else if((a>0&&b==0&&c>0)||(a<0&&b==0&&c<0)||(a==0&&b==0&&c!=0)){
System.out.println("此一元二次方程无解");
break;
//b等于0和a,b等于0时的情况
}
else if((a<0&&b==0&&c>0)||(a>0&&b==0&&c<0)) {
double x1=Math.sqrt(-(4*a*c)/(2*a));
double x2=-Math.sqrt(-(4*a*c)/(2*a));
String B = String .format("%.2f",x1);
String C = String .format("%.2f",x2);
System.out.println("此一元二次方程的解为:"+B);
System.out.println("此一元二次方程的解为"+C);
break;
//b等于0时的情况
}
else if(a!=0&&b!=0&&c==0) {
double x1=-b+Math.sqrt(b*b)/(2*a);
double x2=-b-Math.sqrt(b*b)/(2*a);
String D = String .format("%.2f",x1);
String E = String .format("%.2f",x2);
System.out.println("此一元二次方程的解为:"+D);
System.out.println("此一元二次方程的解为:"+E);
break;
//c等于0时的情况
}
else if((a==0&&c==0&&b==0)) {
System.out.println("x为任意解");
break;
//a,b,c都等于0时的情况
}
else if((a!=0&&b==0&&c==0)||(a==0&&b!=0&&c==0)) {
System.out.println("此一元二次方程的解为:0");
break;
//b,c等于0和a,c等于0时的情况
}
else{
if(b*b-4*a*c>=0) {
double x1=-b+Math.sqrt(b*b-4*a*c)/(2*a);
double x2=-b-Math.sqrt(b*b-4*a*c)/(2*a);
String F = String .format("%.2f",x1);
String G = String .format("%.2f",x2);
if(b*b-4*a*c==0) {
System.out.println("此一元二次方程的解为:"+F);
//Δ等于0时的情况
}
else {
System.out.println("此一元二次方程的解为:"+F);
System.out.println("此一元二次方程的解为:"+G);
//Δ大于0时的情况
}
//Δ大于等于0时的情况
}
else {
double x1=-b/(2*a);
double xa=Math.sqrt(-(b*b-4*a*c))/(2*a);
String H = String .format("%.2f",x1);
String I = String .format("%.2f",xa);
System.out.println("此一元二次方程的解为:"+H+"+"+I+"i");
System.out.println("此一元二次方程的解为:"+H+"-"+I+"i");
//德尔塔小于0时的情况
}
break;
//a,b,c都不等于0为标准一元二次方程时的情况
}
}
}
}
二、运行结果
END