目标是创建一个程序,采用二次方形的二次方程并求解。除了StringTokenizer之外,还有不同的方法吗?或者是否可以在StringTokenizer中仅隔离^ 2而不是像现在这样在^和2中隔离?我意识到使用我编写它的方式,它将不允许方程式使用2。
这个问题要求我不要采用单个系数,而是采用整个方程本身。
样品运行:“javaSolveEquation21.5625x∧2+ 2.5x + 1 = 0”。对于此输入,输出应为:“x = -0.8”
import java.util.Scanner;
import java.util.StringTokenizer;
class SolveEquation2 {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
System.out.print("Input a quadratic");
String equation = scan.nextLine();
StringTokenizer st = new StringTokenizer(equation, "x^2+-");
String a,b,c;
a = st.nextToken();
b = st.nextToken();
c = st.nextToken();
double a1 = Double.parseDouble(a);
double b1 = Double.parseDouble(b);
double c1 = Double.parseDouble(c);
double x = (b1 * b1) - (4 * a1 * c1);
double var1 = (-b1 + Math.sqrt(x)) / (2*a1);
double var2 = (-b1 - Math.sqrt(x)) / (2*a1);
if (x == 0){
System.out.println("x = " + var1);
}
if (x > 0){
System.out.println("x1 = " + var1);
System.out.println("x2 = " + var2);
}
if (x < 0){
System.out.println("No Solution");
}
}
}