首页 > 代码库 > 海伦公式
海伦公式
三角形三边边长a,b,c,则p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 const int Pi=4*acos(-1.0); 5 double r1,r2,r3; 6 double a,b,c; 7 double getarea(double a,double b,double c) 8 { 9 double p=a+b+c; 10 p/=2; 11 return sqrt(p*(p-a)*(p-b)*(p-c)); 12 } 13 double gettarea(double a,double b,double c,double r) 14 { 15 double t=(a*a+b*b-c*c)/(2*a*b); 16 t=acos(t); 17 return t/2*r*r; 18 } 19 int main() 20 { 21 int T; 22 scanf("%d",&T); 23 for (int t=1;t<=T;t++) 24 { 25 scanf("%lf%lf%lf",&r1,&r2,&r3); 26 a=r1+r3; 27 b=r1+r2; 28 c=r2+r3; 29 double ans=getarea(a,b,c)-gettarea(a,b,c,r1)-gettarea(b,c,a,r2)-gettarea(a,c,b,r3); 30 printf("Case %d: %.9lf\n",t,ans); 31 } 32 return 0; 33 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。