public class Quadratic {
    public static void main(String args[]) {
        float a = 1.0f; 
        float b = -2.0f;
        float c = -3.0f;
        float d, r0, r1;

        d = b * b - 4.0f * a * c;  // 判別式
	    
        if ( d > .0f ) {  // 2つの実根
            d = (float) Math.sqrt( d );
            r0 = 0.5f * ( -b + d ) / a;
            r1 = 0.5f * ( -b - d ) / a;
            System.out.println( "Two real roots = "+r0+", "+r1);
        } else if ( d == .0f ) {  // 重根
            r0 = -0.5f * b / a;  
            System.out.println( "One root = "+r0);
        } else {  // 2つの虚根
            d = 0.5f * (float ) Math.sqrt( -d );
            r0 = -0.5f * b / a;
            r1 = 0.5f * d / a;
            System.out.println( "Two imaginary roots, r = "+r0+", i = "+d);
        }
        try
        {
            System.in.read();
        }
        catch(Exception e)
        {
        }
    }
} 
