加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 这个二次公式我做错了什么?

发布时间:2020-12-15 05:02:26 所属栏目:Java 来源:网络整理
导读: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 = 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.

我无法弄清楚我在这里做错了什么.

解决方法

应该:

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);

(我发现表达越简单,发现错误就越容易)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读