0

我正在编写一个程序,它从等式中获取 a、b 和 c,并使用它们使用以下公式找到 x: http ://www.purplemath.com/modules/quads/qform01.gif 。

我遇到的问题是,当我插入方程 1x^2 +3x +4 时,我得到 x = -Infinity 和 x = infinity 而不是 x = 1 和 x = -4。

这是我的代码:

第一类:

    public class quadratictest
    {
        public static void main(String args[])
        {
            DecimalFormat df = new DecimalFormat("#.###");
            System.out.println("--------------------------------------------------");
            System.out.println("               ~Quadratic Formula~");
            System.out.println("--------------------------------------------------");
            System.out.println("in a polynomial, there are 3 important numbers used");
            System.out.println("to figure out x. they are a, b, and c, shown below.\n");
            System.out.println("\t\t1x^2 +3x +4");
            System.out.println("\t\t^     ^   ^");
            System.out.println("\t\ta     b   c");
    Scanner input = new Scanner(System.in);
           System.out.print("\nPlease type a, b, and c here[a b c]: ");
            int a = input.nextInt();
            int b = input.nextInt();
            int c = input.nextInt();
            mathey quad = new quadsong(a,b,c);
        System.out.println("------------");
        System.out.println(quad.solveb());
        System.out.println(quad.solvea());
        //System.out.println("x =" +df.format(quad.solvea()));
        //System.out.println("x =" +df.format(quad.solveb()));
        System.out.println("------------");
    }
}

第 2 类:

    import java.util.*;
    import java.io.*;
    import java.text.DecimalFormat;
            /**
     * Write a description of class quadsong here.
     * 
     * @author (your name) 
     * @version (a version number or a date)
     */
    public class mathey
    {
        int a;int b;int c;
        double solution1;
        double solution2;
          public mathey(int aN, int bN, int cN)
        {
            int a  = aN;
            int b = bN;
            int c = cN;
            solvea();
            solveb();
        }
        public double solvea()
        {
         solution1 = ( (b*-1) + Math.sqrt((b^2)-(4*a*c)))/(a+a);
          if (solution1 == Math.floor(solution1))
         {
         return solution1;
        }
        else
        {
            return 0;
        }
        }
            public double solveb()
        {
         solution2 = ( (b*-1) - Math.sqrt((b^2)-(4*a*c)))/(2*a);
         if (solution2 == Math.floor(solution2))
         {
         return solution2;
        }
        else
        {
            return 0;
        }
        }
    }

这是我的输出:

    --------------------------------------------------
                   ~Quadratic Formula~
    --------------------------------------------------
    in a polynomial, there are 3 important numbers used
    to figure out x. they are a, b, and c, shown below.

            1x^2 +3x +4
            ^     ^   ^
            a     b   c

    Please type a, b, and c here[a b c]: 1 3 4
    ------------
    x =Infinity
    x =-Infinity
    ------------

怎么了?提前致谢!PS对不起代码格式,idk为什么它不能像我想要的那样工作哈哈

4

1 回答 1

1

您在这里遇到的问题是: 1x^2 + 3x + 4 没有根。这更像是一个数学错误。

于 2013-01-31T18:46:57.133 回答