Задание _
Даны три стороны треугольника a,b,c. Определите тип треугольника с заданными сторонами. Выведите одно из четырех слов: rectangular для прямоугольного треугольника, acute для остроугольного треугольника, obtuse для тупоугольного треугольника или impossible, если треугольника с такими сторонами не существует (считаем, что вырожденный треугольник тоже невозможен).
-
-
-
Мой код _
a = int(input())
b = int(input())
c = int(input())
if (a < b + c) or (b < a + c) or (c < b + a):
if (c**2 == a**2 + b**2) or (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2):
print("rectangular")
elif (a**2 > b**2 + c**2) or (b**2 > a**2 + c**2) or (c**2 > b**2 + a**2):
print("obtuse")
elif (a**2 < b**2 + c**2) or (b**2 < a**2 + c**2) or (c**2 < b**2 + a**2):
print("acute")
else:
print("impossible")
Сдал работу, но мне говорят, что что-то не так. Помогите понять, где ошибка или что я не учел. Все отступы если что у меня соблюдены. Ошибка должна быть в условии.
Answers & Comments
Ответ:
могу сделать код покороче если проходили списки и функции min и max
Объяснение:
a = int(input())
b = int(input())
c = int(input())
if (a > b + c) or (b > a + c) or (c > b + a):
print("impossible")
elif (c**2 == a**2 + b**2) or (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2):
print("rectangular")
elif (a**2 < b**2 + c**2) and (b**2 < a**2 + c**2) and (c**2 < b**2 + a**2):
print("acute")
elif (c**2 > a**2 + b**2) or (a**2 > b**2 + c**2) or (b**2 > a**2 + c**2):
print("obtuse")
upd:почему то когда я копирую свой код от сюда и переношу в atom(редактор) такая ошибка хз в чем проблема надеюсь у тебя такой нет
upd:чтоб ее не было перепиши строки с принтами
arr=sorted([a,b,c])
if arr[2]>arr[0]+arr[1]:
print("impossible")
elif arr[2]**2==arr[0]**2+arr[1]**2:
print("rectangular")
elif arr[2]**2 print("acute")
elif arr[2]**2>arr[0]**2+arr[1]**2:
print("obtuse")