第九届蓝桥杯 javaB组 三角形面积

已知三角形三个顶点在直角坐标系下的坐标分别为:
(2.3, 2.5)
(6.4, 3.1)
(5.1, 7.2)

求该三角形的面积。

注意,要提交的是一个小数形式表示的浮点数。
要求精确到小数后3位,如不足3位,需要补零。

public static void main(String[] args) {
		// 海伦公式求三角形面积
		float a=(float) Math.sqrt((6.4-2.3)*(6.4-2.3)+(3.1-2.5)*(3.1-2.5));
		float b=(float) Math.sqrt((6.4-5.1)*(6.4-5.1)+(3.1-7.2)*(3.1-7.2));
		float c=(float) Math.sqrt((5.1-2.3)*(5.1-2.3)+(7.2-2.5)*(7.2-2.5));
		float q=(float) ((a+b+c)/2.0);
		float area=(float) Math.sqrt(q*(q-a)*(q-b)*(q-c));
		System.out.println(String.format("%.3f",area ));
		//向量方法求三角形面积
		double x1 = 2.3;
		double y1 = 2.5;
		double x2 = 6.4;
		double y2 = 3.1;
		double x3 = 5.1;
		double y3 = 7.2;
		double area1 = Math.abs(((x1*y2+x2*y3+x3*y1)-(y1*x2+y2*x3+y3*x1))/2);
		System.out.println(String.format("%.3f",area ));		
	}

该题实现考查了两个知识点:
1.根据三个点的坐标,如何求三角形面积
有两种方法,一种为海伦公式,另一种可以根据向量来求
2.如何保留3位小数
string.format()函数生成具有特定格式的字符串
%f - 接受一个数字并将其转化为浮点数格式
为进一步细化格式, 可以在%号后添加参数. 参数将以如下的顺序读入:

(1) 符号: 一个+号表示其后的数字转义符将让正数显示正号. 默认情况下只有负数显示符号.
(2) 占位符: 一个0, 在后面指定了字串宽度时占位用. 不填时的默认占位符是空格.
(3) 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐.
(4) 宽度数值
(5) 小数位数/字串裁切: 在宽度数值后增加的小数部分n, 若后接f(浮点数转义符, 如%6.3f)则设定该浮点数的小数只保留n位, 若后接s(字符串转义符, 如%5.3s)则设定该字符串只显示前n位.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值