海伦公式
题目描述
海伦公式亦称“海伦-秦九韶公式”,可以直接用三角形的三条边长来计算出三角形面积。此公式是亚历山大港的海伦发现或记载的,并可在其于公元60年的《Metrica》中找到其证明。
亦有人认为更早时阿基米德已经懂得这条公式。而由于《Metrica》是一部古代数学知识的结集,该公式的发现时期很有可能先于海伦的著作。中国南宋末年数学家秦九韶发现或知道等价的公式,其著作《数书九章》中记载有一个等价的公式。
根据海伦公式,只需知道三角形的三边长 a , b , c a,b,c a,b,c,就可以计算三角形的面积 S S S。计算公式如下:
S
=
p
(
p
−
a
)
(
p
−
b
)
(
p
−
c
)
S=\sqrt {p(p-a)(p-b)(p-c)}
S=p(p−a)(p−b)(p−c)
其中
p
p
p为半周长,
p
=
a
+
b
+
c
2
p=\frac{a+b+c}{2}
p=2a+b+c
请根据公式,使用三角形三边长计算其面积。
输入格式
一行,三个浮点数 a , b , c a,b,c a,b,c,以空格分隔,表示三角形三边长。
输出格式
一行,一个浮点数(保留两位小数),表示三角形的面积 S S S。
样例 #1
样例输入 #1
3 4 5
样例输出 #1
6.00
样例 #2
样例输入 #2
3.14 1.618 2.414
样例输出 #2
1.92
提示
输入保证合理(三个边长可以构成三角形),并且 a , b , c , S a,b,c,S a,b,c,S都能用double类型存储。
<cmath>
头文件中有一个工具(函数)可以求平方根。引入头文件后,程序中使用sqrt(a)
就能得到
a
a
a的平方根
a
\sqrt{a}
a,结果为double类型。例如
cout << sqrt(2);
会输出1.41421,即 2 \sqrt{2} 2的近似值。
#include<bits/stdc++.h>
using namespace std;
int main(){
double a,b,c,p;
cin >> a >> b >> c;
p = (a+b+c)/2.0;
cout << fixed << setprecision(2) << sqrt(p*(p-a)*(p-b)*(p-c));
return 0;
}