java - 一元二次方程 Java 类

标签 java class quadratic

我在学校用java工作,到目前为止,我在处理类(class)和家庭作业问题上遇到了一些麻烦。我对二次方程类有以下标准:

Homework Problem Here

到目前为止我已经:

private static double coefA;
private static double coefB;
private static double coefC;


public static void main(String[] args) 
{
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter the a, b and c for a Quadratic: ");
    coefA = input.nextDouble();
    coefB = input.nextDouble();
    coefC = input.nextDouble();

    double discriminant = getDiscriminant();

    if (discriminant < 0)
    {
        System.out.println("There are no real roots.");

    }
    else if (discriminant == 0)
    {
        System.out.println("The one root is: "+getRoot1());
    }
    else
    {
        System.out.println("The first root is: "+getRoot1());
        System.out.println("The second root is: "+getRoot2());
    }

}
//Construct
public QuadraticEquation(double a, double b, double c)
{
    coefA = a;
    coefB = b;
    coefC = c;
}

private static double getDiscriminant()
{
    double discriminant = (coefB * coefB) - (4 * coefA * coefC);
    return discriminant;
}
static double getRoot1()
{
    double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ 2 * coefA;
    return root1;

}
static double getRoot2()
{
    double root2 = (-coefB - Math.sqrt(getDiscriminant()))/ 2 * coefA;
    return root2;

}
}

这个方程不起作用,我什至认为我不符合标准,但我不完全理解这本书的要求。有人可以帮忙吗?

最佳答案

您的数学方程的实现是正确的,但您必须放入括号中。例如;

double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ 2 * coefA;

这里(-coefB + Math.sqrt(getDiscriminant()))方程2。然后与 coefA 进行乘法。小心点。用这个例子改变你的逻辑;

double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ (2 * coefA);

因此应用于其他字段以获得正确的结果。

你的两个方法应该改变。

static double getRoot1()
{
    double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ (2 * coefA);
    return root1;

}
static double getRoot2()
{
    double root2 = (-coefB - Math.sqrt(getDiscriminant()))/ (2 * coefA);
    return root2;

}

更详细地讲,运算符优先级表;

Operators                                       Precedence              Associativity
postfix increment and decrement                 ++ --                   left to right
prefix increment and decrement, and unary       ++ -- + - ~ !           right to left
multiplicative                                  * / %                   left to right
additive                                        + -                     left to right

关于java - 一元二次方程 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52412129/

相关文章:

linear-algebra - 使用 CGAL 在二次规划中最大化

c++ - 运算符重载已定义错误

php - 将文件包含到命名空间中

r-投资组合优化-Solve.QP-约束不一致

java - 如何检查两个 double 值中较大和较小的值?

java - 我们是否在 UML 类图中的两个类中应用相同的操作?

java - 在java中解析二次方程

java - Spring JPA在多对多关系中持久化子级时如何持久化父级

java - 为什么这个小小的 Java 程序会占用如此多的时间和内存?

java - 使用 for 循环查找大量按钮 (Android Studio)