标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 8310 | Accepted: 4960 |
Description
Input
Output
Sample Input
0.0 -0.5 0.5 0.0 0.0 0.5 0.0 0.0 0.0 1.0 1.0 1.0 5.0 5.0 5.0 7.0 4.0 6.0 0.0 0.0 -1.0 7.0 7.0 7.0 50.0 50.0 50.0 70.0 40.0 60.0 0.0 0.0 10.0 0.0 20.0 1.0 0.0 -500000.0 500000.0 0.0 0.0 500000.0
Sample Output
3.14 4.44 6.28 31.42 62.83 632.24 3141592.65
开始准备用二分去找的...然后忘了外接圆的定义,然后百度,,发现直接有公式
这里是外接圆半径公式
#include<stdio.h> #include<iostream> #include<string.h> #include <stdlib.h> #include<math.h> #include<algorithm> using namespace std; const double pi = 3.141592653589793; const double esp = 1e-8; struct Point{ double x,y; }p[3]; double dis(Point a,Point b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); } int main() { while(scanf("%lf%lf%lf%lf%lf%lf",&p[0].x,&p[0].y,&p[1].x,&p[1].y,&p[2].x,&p[2].y)!=EOF){ double a = sqrt(dis(p[0],p[1])); double b = sqrt(dis(p[1],p[2])); double c = sqrt(dis(p[0],p[2])); double r = a*b*c/sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)); printf("%.2lf\n",2*pi*r); } return 0; }
标签:
原文地址:http://www.cnblogs.com/liyinggang/p/5431714.html