Robert Sedgewick と Kevin Wayne によるプログラミング入門書を読んでいます。
例の1つでは、次のように二次クラスを実装しています。
public class Quadratic
{
public static void main(String[] args)
{
double b = Double.parseDouble(args[0]);
double c = Double.parseDouble(args[1]);
double discriminant = b * b - 4.0 * c;
double d = Math.sqrt(discriminant);
System.out.println((-b + d) / 2.0);
System.out.println((-b - d) / 2.0);
}
}
著者は二次式の 'a' 係数を省略しています。これはaの係数が相殺(分子/分母)できるからでしょうか?
フィードバックに基づいて… 以下が正しい解決策でしょうか:
public static void main(String[] args)
{
double b = Double.parseDouble(args[0]);
double c = Double.parseDouble(args[1]);
double a = Double.parseDouble(args[2]);
double discriminant = b * b - 4.0 * a * c;
double d = Math.sqrt(discriminant);
System.out.println((-b + d) / (2.0 * a));
System.out.println((-b - d) / (2.0 * a));
}