老哥们,别白嫖,点个赞吧,秋梨膏
1.0版本代码如下:
(该版本的计算并不完善,例如输入1,2,1它会提示你"该方程中的数据进行了开平方,所以不太准确",这是个意料之外的错误,以后再改,改版本仅供参考)
package calculate;
import java.util.Scanner;
class calculate_2 {
public static void main(String[] args) {
System.err.println("请大佬每输入一个数就按一次enter");
System.out.println("请输入a,b,c的数值");
Scanner Scanner1 = new Scanner(System.in);
//System.out.println("请输入b的数值");
Scanner Scanner2 = new Scanner(System.in);
//System.out.println("请输入c的数值");
Scanner Scanner3 = new Scanner(System.in);
double a = Scanner1.nextDouble();
double b = Scanner2.nextDouble();
double c = Scanner3.nextDouble();
double A = a;//后面判断方程是否有解时会用到
double B = b;
double C = c;
double i, j, k;
i = b * b / (4 * a * a);
j = c / a;
k = b / (2 * a);
double d = i - j;
d = Math.sqrt(d);
String D = String.format("%.2f", d);//取小数点后两位
String panduan = D.substring(1);
//System.out.println("D的值是:"+D);
String ling = ".00";//创建一个用来判断的字符串
//System.out.println("被截取之后的字符串是:"+panduan);
b = Double.parseDouble(D);
double x, y;
x = b - k;
String X = String.format("%.2f", x);//X为根号下的数据并且将X的值保留小数点后两位
y = -b - k;
if (B * B - 4 * A * C < 0) {
//该情况下没有接解
System.out.println("你好好输入行不行?该方程无解");
} else {
if (B * B - 4 * A * C > 0) {
//该情况下有两个解
if (panduan != ling) {
System.err.println("该方程中的数据进行了开平方,所以不太准确");
}
System.out.println("该方程有两个解:");
String Y = String.format("%.2f", y);//将Y的值保留小数点后两位
String D1 = X.substring(X.length() - 2, X.length());//截取String类型的后两位
String panduan2 = "00";
if (
D1.equals(panduan2)
) {
String D2 = D.substring(0, D.length() - 3);
// D2为最后的X1的值
X = D2;
String DD = Y.substring(D.length() - 2, Y.length());//截取String类型的后两位
if (
DD.equals(panduan2)
) {
String D3 = D.substring(0, D.length() - 3);
Y = D3;//如果正确,D3的值将会传给Y
} else {
Y = Y;
}
} else {
System.out.println("该方程有两个解:" + "X1=" + X + ";" + "X2=" + Y);
}
// System.out.println("x1=" + X + " ; " + "x2=" + Y);
} else {
//该情况下b*b-4*a*c=0,方程只有一个解
if (panduan != ling) {
System.out.println("该方程中的数据进行了开平方,所以不太准确");
}
String D1 = X.substring(X.length() - 2, X.length());//截取String类型的后两位
String panduan2 = "00";
if (
D1.equals(panduan2)
) {
String D2 = D.substring(0, D.length() - 3);
System.out.println("只有一个解:X1= " + D2);
} else {
System.out.println("只有一个解:X1= " + D);
}
}
}
}
}
输出: