题目详情
【深基3.习8】三角形分类
题目描述
给出三条线段 a , b , c a,b,c a,b,c 的长度,均是不大于 10000 10000 10000 的整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?
- 如果三条线段不能组成一个三角形,输出
Not triangle
; - 如果是直角三角形,输出
Right triangle
; - 如果是锐角三角形,输出
Acute triangle
; - 如果是钝角三角形,输出
Obtuse triangle
; - 如果是等腰三角形,输出
Isosceles triangle
; - 如果是等边三角形,输出
Equilateral triangle
。
如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。
输入格式
输出格式
提示
当两短边的平方和大于一长边的平方,说明是锐角三角形。
当两短边的平方和等于一长边的平方,说明是直角三角形。
当两短边的平方和小于一长边的平方,说明是钝角三角形。
代码及坑点
x=list(map(int,input().split()))
#主要是这里
#一开始使用
#x=[]
#x=input()
#这种方式读入,一直RE不知道为什么,实在不知道为什么越界于是更换了读入方式,才正确
x=sorted(x)
x=[int(i) for i in x if i!=' ']
if(x[0]+x[1]>x[2]):
a=x[0]*x[0]+x[1]*x[1]
b=x[2]*x[2]
if(a>b):
print("Acute triangle")
elif (a<b):
print("Obtuse triangle")
else:
print("Right triangle")
if (x[0] == x[1] or x[1] == x[2]):
print('Isosceles triangle')
if (x[0] == x[2]):
print("Equilateral triangle")
else:
print("Not triangle")
收获
洛谷RE大多是数组越界或非法运算,唉,没想明白为什么这里越界,尝试赋初值也不行。只能换一种读入方式,解决!