R. Территория зла

В давние времена считалось, что если какая-то местность является треугольником, то в ней заключено страшное зло.

При этом люди оценивали риск встретить зло по форме этого треугольника:

  • в остроугольном треугольнике вероятность встретить зло крайне мала;
  • в тупоугольном — велика;
  • в прямоугольном — 100%.

Напишите программу, которая по длине сторон треугольной местности, определяет вероятность встретить зло.

Формат ввода

Три числа — длины сторон треугольной местности.

Формат вывода:

Вероятность встретить зло согласно поверью:

  • крайне мала;
  • велика;
  • 100%.

Пример

Ввод

3
5
4

Вывод

100%

Ввод

6
3
4

Вывод

велика

Решение

Задача на тему сортировки и сравнения.

Нам нужно проверить является ли треугольник прямоугольным, остроугольным или тупоугольным.

Для определения главного угла можно воспользоваться теоремой Пифагора: В прямоугольном треугольнике квадрат гипотенузы (самой длинной стороны) равен сумме квадратов катетов (оставшихся двух сторон). Если квадрат самой длинной стороны меньше суммы квадратов оставшихся – треугольник будет остроугольным. В противном случае – тупоугольным.

Остается найти самую длинную и две остальных стороны. С этой задачей мы уже научились справляться.

Для определения соотношения сторон, воспользуемся приемом из задачи L. Музыкальный инструмент

Посмотреть код

Решение

Python
a = int(input())
b = int(input())
c = int(input())

maximum = max(a, b, c) ** 2 * 2
other = a ** 2 + b ** 2 + c ** 2

if maximum == other:
    print('100%')
elif maximum > other:
    print('велика')
else:
    print('крайне мала')
Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алексей
Алексей
28.12.2023 11:33

Добрый день!
я немного иначе решил, хоть и не так изящно, как в решении на этом сайте
возможно, людям без знаний теоремы Пифагора это решение будет ближе

из школьного курса мне запомнилось (возможно не правильно запомнилось, но это помогло решить задачу), что гипотенуза и прямоугольном и тупоугольном треугольнике больше, чем любой из катетов

соответственно, я нашел самую длинную, среднюю и короткую сторону и по правилу нахождения третьей стороны в каждом из видов треугольников написал код

первое условие – для прямоугольного треугольника, где сумма квадратов коротких сторон равна квадрату третьей стороны
второе условие – для тупоугольного треугольника, где сумма квадратов коротких сторон меньше квадрата самой длинной стороны
и исключение – третий вид треугольника, который при не попадании под предыдущие условия является осроугольным

a = int(input())
b = int(input())
c = int(input())

maximum = max(a ,b, c)
minimum = min(a, b, c)
middle = a + b + c – maximum – minimum

if maximum ** 2 == (middle ** 2 + minimum ** 2):
print(“100%”) #для прямоугольного треугольника
elif (middle ** 2 + minimum ** 2) < maximum ** 2:
print(“велика”) #для тупоугольного треугольника
else:
print(“крайне мала”) #для остальных случае – остроугольного треугольника

Артем
Артем
17.02.2024 22:33

# Первую проверку сделаем на то, что треугольник прямоугольный (по т. Пифагора разумеется) и т.к. наибольшую сторону из заданных не вычислили, то переберем все 3 варианта через логическое ИЛИ.
# Вторая проверка будет по свойству тупоугольного треугольника, что если квадрат одной стороны БОЛЬШЕ суммы квадратов других сторон, то он тупоугольный  с**2 > a**2 + b**2. Также 3 варианта для разных условий, объединенных логическим ИЛИ.
# Аналогичное свойство есть для остроугольного: если с**2 < a**2 + b**2, то треугольник остроугольный.
Но т.к. это единственный оставшийся вариант из интересующих нас треугольников, пропишем его в теле else.

a = int(input())
b = int(input())
c = int(input())

if a == (b**2 + c**2)**0.5 or b == (a**2 + c**2)**0.5 or c == (a**2 + b**2)**0.5:
    print(‘100%’)
elif a > (b**2 + c**2)**0.5 or b > (a**2 + c**2)**0.5 or c > (a**2 + b**2)**0.5:
    print(‘велика’)
else:
    print(‘крайне мала’)