使用鞋带公式计算三点三角形面积并取绝对值。
OJ: noi_openjudge
题目 ID: ch0103-17
难度:入门
标签:数学几何python
日期: 2026-07-30 23:01
题意
输入三角形三个顶点坐标,输出面积,保留 2 位小数。
思路
鞋带公式给出两倍有向面积:
代码
Python代码
python
x1, y1, x2, y2, x3, y3 = map(float, input().split())
twice_area = x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2
print(f"{abs(twice_area) / 2:.2f}")C++代码
cpp
/*
三角形的三个顶点坐标求其面积的公式为:
S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)
* */
#include <cstdio>
int main(){
double x1,y1,x2,y2,x3,y3;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
double ans = (x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2;
printf("%0.2lf\n",ans);
return 0;
}复杂度
时间复杂度和额外空间复杂度均为
总结
坐标面积公式算出的是有向面积;求几何面积时别遗漏 abs。