Напишите функцию triangle, которая тестирует переданный ей треугольник и возвращает его тип. Треугольники бывают: остроугольными, прямоугольными и тупоугольными. Функция принимает три числа, которые соответствуют длине каждой стороны.
Решение
Чтобы решить задачу придётся вспомнить немного школьной геометрии. Начнём с простого: треугольник не существует, если сумма длины двух любых его сторон меньше, либо равен длине третьей стороны:
Условие выглядит громоздким и трудным для чтения. Его можно немного упростить с помощью методов массивов sort: если отсортировать аргументы по возрастанию, то мы точно будем знать, что на последнем месте будет находиться сторона с наибольшей длиной:
Недостаток данного способа заключается в том, что функция будет обрабатывать все передаваемы ей аргументы, а не только первые три. Эту проблему достаточно просто решить с помощью метода массивов slice:
Данное дейтвие также приведёт к преобразованию псевдомассива arguments к массиву, поэтому можно сразу же воспользоваться методом sort.
Итак, что мы уже имеем? Отсортированный по возрастанию массив аргументов и вывод о том, что треугольника не существует. Задача практически решена. Остаётся только сравнивать квадраты длин сторон в соотвествие с правилами:
Если квадраты двух меньших сторон равны квадрату третьей стороны, то треугольник прямогульный.
Комментарии