Run ID:144190

提交时间:2026-01-19 23:20:07

#1306:判断三角形 #思路分析: """ (1)首先要分析输入的三条边能不能围成三角形:用到三角形任意两边之和大于第三边 换句话说:三角形较短的两条边之和大于最长边即可(这样只要写一次判断,但是要先找出最大边) (2)如果不能围成:则直接输出No;如果能围成分以下4种情况讨论 (3)情况1(if):如果三条边都相等:是等边 情况2(elif):如果只有两条边相等:是等腰(哪两条相等:有三种) 情况3(elif):如果有一个角是直角:是直角(哪一个是直角:有三种 怎么表示:用勾股定理) 情况4(else):否则:就是一般三角形 """ a,b,c=input().split() #一行中输入a,b,c三个变量,中间以空格隔开 a,b,c=int(a),int(b),int(c) #把字符串类型的a,b,c三个变量转化成整数类型 da=max(a,b,c) if (a+b+c-da)>da: #较短两边之和大于第三边,这样才能构成三角形 if a==b==c: #判断等边 print("Equilateral Triangle") elif a==b or a==c or b==c: #判断等腰 print("Isosceles Triangle") elif a**2+b**2==c**2 or a**2+c**2==b**2 or b**2+c**2==a**2: #判断直角 print("Right Triangle") else: #普通 print("Simple Triangle") else: print("No") #备注 #备注1:前2行代码可用一句话代替: #a,b,c=map(int,input().split()) #将用户输入的以空格分隔的字符串一次性转换为三个整数,并分别赋值给变量a、b、c #备注2:判断等边能不能和判断等腰交换位置,也就是先判断等腰,再判断等边 #答:不可以。因为如果交换位置,假如我输入6,6,6,三边,符合等腰的两边相等,直接认定为等腰了,故不能交换位置。 #备注3:较短两边之和怎么求: #上述中用到了(a+b+c-da),也就是三边加起来减去最大边这种方法。有的同学在想能不能用sum(a,b,c)-da,因为他知道sum()函数是用来求和的。 #答:不可以,因为sum()函数,接收一个可迭代对象(列表、元组等),不能直接传递多个参数 #备注4:本题方法很多,上述写法仅供参考和借鉴