本文主要是介绍B3638 T1 三角形面积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目背景
请尽量在 20min 之内写完题目。这是指「写代码」的时间;「读题」时间不计算在内。
题目描述
给定平面直角坐标系上的三个整点 A,B,C 的坐标,求其围成的三角形面积。
数据保证答案一定是整数。所以如果你采用了浮点数来计算,请四舍五入到整数。
两点之间的距离公式:(x1,y1),(x2,y2) 之间的距离是 (x1−x2)2+(y1−y2)2
海伦公式: 若三角形的边长为 a,b,c,则三角形的面积是 s(s−a)(s−b)(s−c),其中s=21(a+b+c).
输入格式
共三行,每行表示一个三角形上的点。
每行包含两个正整数,表示点的坐标,形式为 x y
。
输出格式
共一行,一个整数,表示三角形面积。
输入输出样例
输入 #1复制
10 20 30 40 50 50
输出 #1复制
100
说明/提示
样例解释
可以通过海伦公式计算面积。方法如下。
AB 距离:(30−10)2+(40−20)2≈28.284(30−10)2+(40−20)2≈28.284
BC 距离:(50−30)2+(50−40)2≈22.361(50−30)2+(50−40)2≈22.361
AC 距离:(50−10)2+(50−20)2≈50(50−10)2+(50−20)2≈50
应用海伦公式,s≈(28.284+22.361+50)/2≈50.323
求出近似面积: s(s−a)(s−b)(s−c)≈10016.80≈100.08,故答案为 100。
数据规模与约定
对于 100%100% 的数据:每个点的 x,y 坐标值一定在 [1,200]之内,均为整数;答案一定为正整数。
Code:
#include<stdio.h>
#include<math.h>
int main(){float a,b,c,d,e,f;scanf("%f %f %f %f %f %f",&a,&b,&c,&d,&e,&f);float r1=sqrt((c-a)*(c-a)+(d-b)*(d-b));float r2=sqrt((e-a)*(e-a)+(f-b)*(f-b));float r3=sqrt((c-e)*(c-e)+(d-f)*(d-f));float p=(r1+r2+r3)/2;float s=sqrt(p*(p-r1)*(p-r2)*(p-r3));printf("%.0f",s);return 0;
}
这篇关于B3638 T1 三角形面积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!