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

Задача. Прямоугольный или нет?

Условие задачи:

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

Входные данные:

В единственной строке задано 3 натуральных числа — длины сторон треугольника. Длины сторон не превышают 1000.

Выходные данные:

Вывести «YES» (без кавычек), если треугольник прямоугольный, или «NO» (без кавычек) в противном случае.

Тесты

a b c answer
3 4 5 «YES»
1 2 3 «NO»
5 3 4 «YES»

Код:

Объяснение Кода:

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

Я проверял через теорему Пифагора «В прямоугольном треугольнике площадь квадрата, построенного на гипотенузе,  равна сумме площадей квадратов, построенных на катетах. (wikipedia)». То есть стороны подставлял в формулу  [latex]a^2+b^2=c^2[/latex], где [latex]a[/latex] и [latex] b[/latex] катеты а [latex]c[/latex]  гипотенуза.  Если стороны подходят в формулу то можно построить прямоугольник и выводим «YES»  в противном случае выводим «NO». Проверял я через тернарный оператор _?_:_  c проверкой трёх вариантов гипотенузы.

Ссылка на задачу в e-olimp.

Ссылка на код в ideone.

Ссылка на пройденные тесты в e-olimp.

 

Радик Сиденко
Радик Сиденко

Latest posts by Радик Сиденко (see all)

5 thoughts on “e-olymp 915. Прямоугольный или нет?

  1. У Вас есть 3 стратегии доработки программы.
    1. Сначала о минимальных переделках:
    — уберите невозможные и повторные варианты в условии (например, (a[1]*a[1])+(a[2]*a[2]))==(a[1]*a[1])). Оставьте только три, в зависимости от того какая из трёх сторон предполагается гипотенузой,
    — замените while на if-else или _?_:_,
    — оставьте один return в самом конце.
    — уберите все строки с переменной d — не знаю, что они тут делают.
    2. Теперь о решении, которое я ожидал — три переменные и один тернарный оператор _?_:_ c проверкой трёх вариантов гипотенузы.
    3. Если Вы решили использовать массивы и циклы, то нужно придать этому какую-то цель. Например, вместо сложного условия проверить в цикле три простых. Т.е. сделать цикл проверки a[i] на диагональ.

    Выберите любую стратегию и переделайте, пожалуйста.

  2. Очень хорошо. Молодец.
    — Только замените три тернарных оператора на один. Для этого соедините все три условия при помощью логического или ||. Разве у Вас так не было с самого начала?
    – Необходимо все формулы переделать в latex
    – Тесты лучше сделать в виде таблицы. И нужно добавить несколько своих.
    – Добавьте, пожалуйста, ключевые слова – tags

  3. – Необходимо все формулы переделать в latex. У Вас проблема с этим? Посмотрите в разделе Questions.
    — Ничего из перечисленного Вами ( e-olymp, e-olymp 915, Прямоугольный или нет?, Радомир Сиденко) не является ключевым словом. Т.е. это всё не существенно для сути этой публикации. А что существенно? Например, «Теорема Пифагора»

Добавить комментарий