Pergunta

Im writing a program, that takes the a, b, and c from an equation, and uses them to find x using the formula: http://www.purplemath.com/modules/quads/qform01.gif.

The problem im getting, is that when I plugin the equation 1x^2 +3x +4 I get x = -Infinity and x = infinity instead of x = 1 and x = -4.

Heres my code:

Class 1:

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

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

heres my output:

    --------------------------------------------------
                   ~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
    ------------

Whats going wrong? Thanks in advance! P.S Sorry for the code formatting, idk why its not working like I want on here haha

Foi útil?

Solução

The problem that you're having here is that: 1x^2 + 3x + 4 has no roots. It's more of a math error than anything else.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top