1 条题解
-
0
自动搬运
来自洛谷,原作者为

Dry_ice
Я всегда буду любить мисс Tracy Reznik.搬运于
2025-08-24 21:02:48,当前版本为作者最后更新于2021-07-09 23:30:37,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
基础练手题。
基本思路
这是一道在坐标系上的海伦公式计算,首先需要会做计算两点之间距离这题,学会运用勾股定理解决两坐标点间距离计算的问题,再利用海伦秦九韶公式计算这道题目。
推导过程
根据B2030的经验,我们知道:一个平面直角坐标系内有两点 与 ,那么两点之间距离为:
可以用勾股定理求解。
- 海伦秦九韶公式
令三角形三边长分别为 、 和 。
先摆海伦:,其中 即周长的一半。
但是我们是中国人,所以看看
$$S=\sqrt{\frac{1}{4}[a^2b^2-(\frac{a^2+b^2-c^2}{2})^2]} $$老祖宗的东西,秦九韶公式:然而实际上这两个柿子是相同的,可以通过乘法公式和因式分解相互推倒。
综上,根据 与 的计算方法,我们就能轻松搞定这道
让人头疼的题目了。CODE
#include <stdio.h> #include <math.h> double x1, y11, x2, y2, x3, y3, a, b, c, p; inline double dis(double x1, double y11, double x2, double y2) { return sqrt((x1 - x2) * (x1 - x2) + (y11 - y2) * (y11 - y2)); } //给定坐标计算两点之间距离 int main(void) { scanf("%lf %lf %lf %lf %lf %lf", &x1, &y11, &x2, &y2, &x3, &y3); a = dis(x1, y11, x2, y2); b = dis(x2, y2, x3, y3); c = dis(x3, y3, x1, y11); /* a, b, c为三边边长 */ p = (a + b + c) / 2; //p为周长一半 printf("%.2lf\n", sqrt(p * (p - a) * (p - b) * (p - c))); //直接用简单的海伦公式即可 return 0; }喜欢就点个赞吧qwq
- 1
信息
- ID
- 6888
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者