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);
当正确的答案应为4和3时,系统打印出7.5和6.5。
我无法弄清楚我在这里做错了什么。
答案 0 :(得分:10)
应该是:
r1 = ((-1*b) + Math.sqrt(turducken))/(2*a);
r2 = ((-1*b) - Math.sqrt(turducken))/(2*a);
(即所有内容除以2 * a
)
您可以进一步简化表达:
double sq = Math.sqrt(b*b - 4*a*c);
r1 = (-b + sq)/(2*a);
r2 = (-b - sq)/(2*a);
(我发现表达越简单,发现错误越容易)
答案 1 :(得分:2)
你的括号在错误的地方!注意:((Math.sqrt(turducken))/(2*a))
只有2*a
应该在分母中。