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