首先,二次方程中有两个根(x 的值)。你必须找到那两个。该根可以是实根,也可以是基于b*b-4*a*c
正或负的虚根。由于 a*x^2+b*x+c=0 的解是x=[-b+squareroot(b^2-4*a*c)]/2*a
or x=[-b-squareroot(b^2-4*a*c)]/2*a
。所以如果 没有真正的价值b^2-4*a*c<0
。你应该先学会这个。按照这个链接。
你可以做这样的事情
public static void main(String[] args) {
Double[] result = quadraticEquation(4, 8, 1);
if(result==null){
System.out.println("There is no real roots for x");
}else{
for(Double d:result){
System.out.println("value for x:" +d);
}
}
}
public static Double[] quadraticEquation(int a, int b, int c) {
Double[] arr = new Double[2];
if ((b*b - (4 * a * c)) < 0) {
return null;
} else {
arr[0] = (-b + Math.sqrt((b*b - 4 * a * c))) / 2 * a;
arr[1] = (-b - Math.sqrt((b*b - 4 * a * c))) / 2 * a;
}
return arr;
}
我不知道你为什么只想要一个解决方案。如果你真的想要一个,你可以这样做。
public static void main(String[] args) {
Double result = quadraticEquation(4, 8, 1);
if(result==null){
System.out.println("There is no real roots for x");
}else{
System.out.println("a value for x:" +result);
}
}
public static Double quadraticEquation(int a, int b, int c) {
Double val =0.0;
if ((b*b - (4 * a * c)) < 0) {
return null;
} else {
val = (-b + Math.sqrt((b*b - 4 * a * c))) / 2 * a;
}
return val;
}