Программа для определения, если 3 стороны образуют правильный треугольник, используя Java - PullRequest
0 голосов
/ 07 октября 2019

Если даны три целых числа a, b и c, вернуть true, если a, b и c могут быть длинами сторон прямоугольного треугольника. В противном случае верните false. Напомним, что в правом треугольнике каждая сторона должна иметь положительную длину, а сумма квадратов длин ног должна равняться квадрату длины гипотенузы.

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

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

1 Ответ

0 голосов
/ 07 октября 2019

Вы используете Math.sqrt вместо Math.pow (x, 2). Вам нужно проверить, что a ^ 2 + b ^ 2 = c ^ 2, а не sqrt (a) + sqrt (b) = sqrt (c).

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