用给定的边确定三角形的类型(锐角、钝角、直角)。给出了三个自然数——三角形的边。必须输出其中一个词:right 代表直角三角形,accent 代表锐角三角形,obtuse 代表钝角三角形,或者如果输入的数字不形成三角形,则不可能。
出于某种原因,他写了一个不完整的解决方案。
a = int(input())
b = int(input())
c = int(input())
if (a + b > c) and (c + b > a) and (a + c > b):
if (a*a + b*b == c*c) or (a*a + c*c == b*b) or (c*c + b*b == a*a):
print("right")
elif (a*a + b*b > c*c) or (a*a + c*c > b*b) or (c*c + b*b > a*a):
print("acute")
elif (a*a + b*b < c*c) or (a*a + c*c < b*b) or (c*c + b*b < a*a):
print("obtuse")
else:
print("impossible")
交换钝角和锐角检查。每个钝角三角形都有两个锐角,因此您的代码永远不会达到钝角测试 - 它会在直角三角形或锐角三角形处停止。
最后一个 elif 可以用 else 代替。
我建议使用 sympy 库