解题思路
本题运用了初中学过的勾股定理和三角形的三边关系:
[a,b,c为一个三角形的三边长\
若a-b<c<a+b,则该图形是一个三角形\
\
若a^2+b^2=c^2,则该三角形是直角三角形\
若a^2+b^2>c^2,则该三角形是锐角三角形\
若a^2+b^2<c^2,则该三角形是钝角三角形\
]
相应的在题目中, 我们只需要计算三角形三边的平方值, 然后根据条件判断就可以输出答案了.
代码解释
每个if分支代表一个判断条件, 之所以不使用elif是因为几个性质可以同时存在, 并不是互斥的.
题解代码
代码如下(Python3):
import sys
strs = input()
abc = strs.split(" ")
for x in range(0, 3):
abc[x] = int(abc[x])
abc.sort()
a = int(abc[0])
b = int(abc[1])
c = int(abc[2])
if (a + b <= c or a - b >= c):
print("Not triangle")
sys.exit(0)
if (a**2 + b **2 == c**2):
print("Right triangle")
if (a**2 + b**2 > c**2):
print("Acute triangle")
if (a**2 + b**2 < c**2):
print("Obtuse triangle")
if (a == b or a == c or b == c):
print("Isosceles triangle")
if (a == b == c):
print("Equilateral triangle")
PostScript:
用Cpp及其他语言是差不多的代码,用python3只是为了省时间而已, 如果你是noip选手, 请尽量采用C++重写一遍, 因为NOIp主要采用C++语言.