判断三角形并计算面积
类型:简单分支
描述
输入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。
输入格式
输入包括三行,每行是一个数字
输出格式
如果输入的三个数字能够组成三角形的三边,则输出为两行,分别是'YES' 和面积值(结果保留2位小数);如果输入的三边不能组成三角形,则输出为'NO'
示例 1
输入:
3.0
4.0
5.0
输出:
YES
6.00
示例2
输入:
2
5
8
输出:
NO
标准答案
a = float(input())
b = float(input())
c = float(input())
if a + b > c and a + c > b and b + c > a: # 判断是否能构成三角形
p = (a + b + c) / 2
area = (p * (p - a) * (p - b) * (p - c)) ** (1/2) # 注意用小括号保证运算优先级
print('YES')
print('{:.2f}'.format(area)) # 输出严格保留2位小数,6.00时输出6.00
else:
print('NO')
我的答案
num = []
for i in range(3):
num.append(eval(input()))
longest = max(num)
shortest = min(num)
middle = sum(num) - longest - shortest
p = (longest+shortest+middle)/2
if longest > 0 and shortest > 0 and middle >0 and shortest + middle > longest:
area = pow(p*(p-longest)*(p-shortest)*(p-middle),1/2)
print('YES')
print('{:.2f}'.format(area))
else:
print('NO')