文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>POJ 2242 The Circumference of the Circle 解题报告

POJ 2242 The Circumference of the Circle 解题报告

时间:2010-05-31  来源:华南理工大学

一、解题报告

http://acm.pku.edu.cn/JudgeOnline/problem?id=2242

 

二、问题描述

AD是△ABC的高,AE是△ABC的外接圆直径.则AE=AB*AC/AD;

怎么求AD呢,可以用叉积的方法,三角形的面积的2倍=ABXAC/BC。

三、代码

 

#include<iostream>
#include<math.h>
using namespace std;
struct Point
{
    double x;
    double y;
};
const double PI=3.141592653589793;
//(B-A)X(C-A)
double Cross(const Point & A,const Point & B,const Point & C)
{
    return (B.x-A.x)*(C.y-A.y)-(C.x-A.x)*(B.y-A.y);
}
double Distance(const Point & A,const Point & B)
{
    return sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
}
double GetHeight(const Point & A,const Point & B,const Point & C)
{
    double area=Cross(A,B,C);
    if(area<0)
        area=-area;
    return area/Distance(B,C);
}

int main()
{
    Point A;
    Point B;
    Point C;
    double R;
    while(scanf("%lf%lf%lf%lf%lf%lf",&A.x,&A.y,&B.x,&B.y,&C.x,&C.y)!=EOF)
    {
        R=Distance(B,A)*Distance(C,A)/GetHeight(A,B,C);
        printf("%.2lf\n",R*PI);
    }
    return 0;
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载