915. Прямоугольный или нет?

 

Заданы длины сторон треугольника. Определите, является ли этот треугольник прямоугольным.

 

Вход. Три натуральных числа a, b, c – длины сторон треугольника, не превышающие 1000.

 

Выход. ВыведитеYES, если треугольник является прямоугольным, и NOв противном случае.

 

Пример входа 1

Пример выхода 1

3 5 4

YES

 

 

Пример входа 2

Пример выхода 2

3 5 5

NO

 

 

РЕШЕНИЕ

условный оператор

 

Анализ алгоритма

Треугольник со сторонами a, b, c является прямоугольным, если одна из его сторон гипотенуза, а две другие катеты. Согласно теореме Пифагора, квадрат длины гипотенузы равен сумме квадратов длин катетов. Это означает, что выполняется одно из следующих условий:

a2 = b2 + c2, b2 = a2 + c2 или c2 = a2 + b2,

где a, b, c могут быть сторонами треугольника в любом порядке.

 

Реализация алгоритма

Читаем длины сторон треугольника.

 

scanf("%d %d %d",&a,&b,&c);

 

Проверяем, является ли треугольник прямоугольным, и выводим соответствующий ответ.

 

if ((a * a + b * b == c * c) ||

    (a * a + c * c == b * b) ||

    (b * b + c * c == a * a))

  puts("YES");

else

  puts("NO");

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int a = con.nextInt();

    int b = con.nextInt();

    int c = con.nextInt();

   

    if ((a * a + b * b == c * c) ||

        (a * a + c * c == b * b) ||

        (b * b + c * c == a * a))

      System.out.println("YES");

    else

      System.out.println("NO");

    con.close();

  }

}  

 

Python реализация

Читаем длины сторон треугольника.

 

a, b, c = map(int,input().split())

 

Проверяем, является ли треугольник прямоугольным, и выводим соответствующий ответ.

 

if a * a + b * b == c * c or a * a + c * c == b * b

                          or b * b + c * c == a * a:

  print("YES")

else:

  print("NO")