Java代码计算一元二次方程

老哥们,别白嫖,点个赞吧,秋梨膏

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);
                }
            }
        }
    }
}

输出:

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务