public class SquareEquation {
double a, b, c;
public void setA(double a) {
this.a = a;
}
public void setB(double b) {
this.b = b;
}
public void setC(double c) {
this.c = c;
}
public double getRootOne() {
double disk = calculateValidDisk();
return (-b + Math.sqrt(disk)) / (2 * a);
}
public double getRootTwo() {
double disk = calculateValidDisk();
return (-b - Math.sqrt(disk)) / (2 * a);
}
private double calculateValidDisk() {
if (a == 0) {
throw new EquationException("不是二次方程", EquationException.NONE_EQUATION);
}
double disk = b * b - 4 * a * c;
if (disk < 0) {
throw new EquationException("沒有實根", EquationException.NO_REALROOT);
}
return disk;
}
}
擴展資料
比如 方程是 x平方+3x+2=0;
public class Test
{
public static void main(String []args)
{
double a=1;//二次項系數
double b=3;//壹次項系數
double c=2;//常數項
double s=b*b-4*a*c;
if(s<0)
{
System.out.print("b*b-4ac<0,方程無解!");
return;
}
double ss=Math.sqrt(s);
double x1=(-1*b-ss)/(2*a);
double x2=(-1*b+ss)/(2*a);
System.out.println("x1="+x1);
System.out.println("x2="+x2);
}
}
參考資料:
百度百科 壹元二次方程