P5717 题解

解题思路

本题运用了初中学过的勾股定理和三角形的三边关系:

[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++语言.

原文地址:https://www.cnblogs.com/kozumi/p/12991188.html