【洛谷算法题】P5708-三角形面积【入门1顺序结构】
🌏题目描述
一个三角形的三边长分别是 a aa、b bb、c cc,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)}p(p−a)(p−b)(p−c),其中 p = 1 2 ( a + b + c ) p=\frac{1}{2}(a+b+c)p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 11 位小数。
🌏输入格式
第一行输入三个实数 a , b , c a,b,ca,b,c,以空格隔开。
🌏输出格式
输出一个实数,表示三角形面积。精确到小数点后 1 11 位。
🌏样例 #1
🌙样例输入 #1
3 4 5
🌙样例输出 #1
6.0
🌏提示
数据保证能构成三角形,0 ≤ a , b , c ≤ 1000 0\leq a,b,c\leq 10000≤a,b,c≤1000,每个边长输入时不超过 2 22 位小数。
🌏题解
import java.util.Scanner; public class P5708 { public static void main(String[] args) { Scanner in = new Scanner(System.in); double a = in.nextDouble(), b = in.nextDouble(), c = in.nextDouble(); double p = (a + b + c) * 0.5; System.out.printf("%.1f",Math.sqrt((p*(p-a)*(p-b)*(p-c)))); in.close(); } }
🌏总结
这个题考查了 Java 的输入输出,数据类型和基本数学方法的使用。因为公式的计算结果是小数,所以我们将三角形的三边直接采用 double 类型,然后使用数学函数Math.sqrt()
就可以计算 double 类型数据的平方根。