@Vlad_Radigin

Как решить задачу с определением трех сторон треугольника?

Задача:
Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами.
Необходимо вывести одно из слов: "right" для прямоугольного треугольника, "acute" для остроугольного треугольника, "obtuse" для тупоугольного треугольника или "impossible", если входные числа не образуют треугольник.

Чем же плох мой способ?
a = int(input())
b = int(input())
c = int(input())
if pow(c, 2) == pow(a, 2) + pow(b, 2):
print('right')
elif pow(b, 1) + pow(c, 2) - pow(a, 2) > 0:
print('acute')
elif pow(a, 2) + pow(b, 2) < pow(c, 2):
print('obtuse')
elif (a + b) <= c or (a + b) <= b or (c + b) <= a:
print('impossible')
  • Вопрос задан
  • 6518 просмотров
Решения вопроса 1
longclaps
@longclaps
Я бы использовал теорему косинусов
Толсто, xoo )

a, b, c = 3, 4, 5
a, b, c = sorted([a, b, c])
if a + b <= c:
    print('impossible')
else:
    t = a * a + b * b - c * c
    print(('right', 'obtuse', 'acute')[(t < 0) - (t > 0)])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@marxxt
понравился ответ - поставь ✔
Я бы использовал теорему косинусов, нашел бы углы, а потом уже делал вывод

Не знаю, что здесь происходит, но размерности здесь не сходятся
pow(b, 1) + pow(c, 2) - pow(a, 2) > 0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы