首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Java确定3条边是否形成有效三角形的程序

使用Java确定3条边是否形成有效三角形的程序
EN

Stack Overflow用户
提问于 2019-10-08 03:12:18
回答 1查看 1.1K关注 0票数 0

给定三个整数a、b和c,如果a、b和c可以是直角三角形的边的长度,则返回true。否则返回false。回想一下,在直角三角形中,每条边的长度必须是正数,边长的平方和必须等于斜边长度的平方。

isRightTriangle(3,4,5) true isRightTriangle(4,3,5)→true isRightTriangle(5,4,3)→true

代码语言:javascript
运行
复制
boolean isRightTriangle(int a, int b, int c) {
  if(a>0 && b>0 && c>0){
    if((Math.sqrt((double)a)+Math.sqrt((double)b))==Math.sqrt((double)c)){
      return true;
    }
    else{
      if((Math.sqrt((double)b)+Math.sqrt((double)c))==Math.sqrt((double)a)){
        return true;
      }
      else{
        if((Math.sqrt(c)+Math.sqrt(b))==Math.sqrt(a)){
          return true;
        }
        else{
          return false;
        }
      }
    }
    }
  else{
    return false;
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-10-08 03:55:08

您正在使用Math.sqrt而不是Math.pow(x,2)。您需要检查a^2+b^2=c^2,而不是sqrt(a)+sqrt(b)=sqrt(c)。

代码语言:javascript
运行
复制
boolean isRightTriangle(int a, int b, int c) {
  // lets exit if variables are bad
  if(a < 1 || b < 1 || c < 1) {
    return false;
  }
  // lets create an array so we can sort
  int[] arry = new int[3];
  arry[0] = a;
  arry[1] = b;
  arry[2] = c;
  Arrays.sort(arry);
  // now that the array is sorted, the largest number (the hypotenuse) should be arry[2]
  return Math.pow(arry[0], 2) + Math.pow(arry[1], 2) == Math.pow(arry[2], 2);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58275767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档