题目描述:
给以一个三角形的三边长a,b和c(边长是浮点数),请你判断三角形的形状。 若是锐角三角形,输出R, 若是直角三角形,输出Z, 若是钝角三角形,输出D, 若三边长不能构成三角形,输出W.
示例:
输入:a = 3.0 b = 5.0 c = 4.0
输出:Z
分析:
我们首先来看一下,如何判断三边可以构成一个三角形。这个我们已经在前面的题目已经讨论了。(任意两边之和大于第三边。)
然后我们再来研究一下:
如何构成一个 直角三角形? 直角边的平方和等于斜边。
根据构成直角三角形的理论,我就开始猜一猜 锐角三角形还有钝角三角形。
我感觉,如果两个直角边的平方和大于斜边的平方和。我就觉得一个这是一个锐角三角形。
那么如何两个直角边的平方和小于斜边的平方和,就就是一个钝角三角形。
代码:
1
2
3
4
5
6
7
8
9
10
11
a, b, c = sorted([a, b, c])
if (a + b <= c) or (a + c <= b) or (b + c <= a):
print("W")
elif a*a + b*b == c * c:
print("Z")
elif a*a + b*b < c * c:
print("D")
elif a*a + b*b > c * c:
print("R")