使用基本运算符计算一元二次方程的根

一元二次方程ax2+bx+c=0(a≠0)的根的判别式△=b2-4ac。

定理1  ax2+bx+c=0(a≠0)中,△ > 0 方程有两个不等实数根;

定理2  ax2+bx+c=0(a≠0)中,△ = 0 方程有两个相等实数根;

定理3  ax2+bx+c=0(a≠0)中,△ < 0 方程没有实数根。

// 计算一元二次方程ax^2+bx+c=0的根。
// 若有两个根,返回一个数组,包含这两个根,即:new double[] { root1, root2 }
// 若有一个根,返回一个数组,包含这个根,即:n返回new double[] { root }
// 若没有根,返回一个空数组,即:new double[] {}
// 提示,你可利用求根公式x=[-b±√(b²-4ac)]/2a
// 需要执行开方运算时可使用Math.sqrt()方法
public static double[] calculate(int a, int b, int c) {
    double discriminant = b * b - 4 * a * c; //b²-4ac 一元二次方程中的判别式
    double v1 = (-b + Math.sqrt(discriminant)) / 2 * 1;//求根公式
    double v2 = (-b - Math.sqrt(discriminant)) / 2 * 1;
    if(discriminant < 0) return new double[]{};  //定理1  ax2+bx+c=0(a≠0)中,△<0方程没有实数根。
    return discriminant == 0 ? new double[]{v1} : new double[]{v1, v2};//定理2  ax2+bx+c=0(a≠0)中,△>0方程有两个不等实数根。定理3  ax2+bx+c=0(a≠0)中,△=0方程有两个相等实数根;
}

 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注