Python编程题:6.P5708 【深基2.习2】三角形面积
今天要做的是来自洛谷网站的P5708 【深基2.习2】三角形面积。
https://www.luogu.com.cn/problem/P5708
有账号的可以上去做做。
题目描述
一个三角形的三边长分别是 a、b、c,那么它的面积为
输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。
输入格式
第一行输入三个实数 a,b,c,以空格隔开。
输出格式
输出一个实数,表示三角形面积。精确到小数点后 1 位。
输入输出样例
说明/提示
数据保证能构成三角形,0≤a,b,c≤1000,每个边长输入时不超过 2 位小数。
本题要求输出三角形的面积,三角形的边长由用户输入,公式已经给出。
难点在于公式中的开根号,在Python中应该如何实现。
这里提供2种实现方式:
1、开根号就是1/2次方,利用**运算符实现
2、利用math库中的sqrt()函数
解题步骤:
1、用户输入3个数值
2、计算
3、输出,保留1位小数。
字符输入 input() 获取字符串,再用split()进行分割字符串,但要记住得到的都是字符串类型的。由于都是浮点数,可以利用map转换格式。
a,b,c=map(float,input().split())
两种求根方法(见上面)
输出时保留浮点数小数点的三种方法:
1、print(“%.nf”%num):这里采用占位符的方法,f代表变量是浮点数,.nf表格保留小数点后n位。num是变量名。
2、print("{:.nf}".format(num))
3、print(f"{num:.nf}")
import math:Python 内置数学库,必须导入才能使用平方根函数 sqrt()
a, b, c = map(float, input().split())读取一行输入,空格分割后全部转为浮点数,一次性赋值给三条边长
p = (a + b + c) / 2 求出三角形半周长
p*(p-a)*(p-b)*(p-c) 公式内连乘,最后用 math.sqrt(数值) 对整体开平方得到面积
:.1f:自动四舍五入,强制保留小数点后 1 位
如果你觉得意犹未尽,那就趁热打铁,继续挑战一下吧!
1、增加合法性判断
输入三边,如果无法构成三角形(任意两边之和小于等于第三边),输出无法构成三角形;可以构成则输出面积(保留 1 位小数)
测试用例 1:3 4 5 → 6.0
测试用例 2:1 2 3 → 无法构成三角形
2、球体体积计算(math 库应用)
球体体积计算公式:
r代表球体半径,π取圆周率常量。
输入一个正数作为球体半径,利用 Python math 库中的圆周率 math.pi 计算球体体积,结果四舍五入保留 2 位小数输出。