a = 1, b = -7, c = 12
public static void quadratic(double a, double b, double c){
double r1;
double r2;
double turducken;
turducken = Math.pow(b,2)-(4*a*c);
r1 = (-1*b) + ((Math.sqrt(turducken))/(2*a));
r2 = (-1*b) - ((Math.sqrt(turducken))/(2*a));
System.out.println("r1: "+r1);
System.out.println("r2: "+r2);
Run Code Online (Sandbox Code Playgroud)
当正确的答案应为4和3时,系统打印出7.5和6.5.
我无法弄清楚我在这里做错了什么.
Mit*_*eat 10
应该:
r1 = ((-1*b) + Math.sqrt(turducken))/(2*a);
r2 = ((-1*b) - Math.sqrt(turducken))/(2*a);
Run Code Online (Sandbox Code Playgroud)
(即一切除以2 * a)
你可以进一步简化你的表达:
double sq = Math.sqrt(b*b - 4*a*c);
r1 = (-b + sq)/(2*a);
r2 = (-b - sq)/(2*a);
Run Code Online (Sandbox Code Playgroud)
(我发现表达越简单,发现错误就越容易)