标签:
Description
Input
Output
Sample Input
Sample Output
#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n;
double x,y,x1,y1,x2,y2,r;//夹角公式与圆的公式联立
double a,b,c;
scanf("%d",&n);
while(n--)
{
scanf("%lf%lf",&x,&y);
r=sqrt(x*x+y*y);
a=1;
b=y;
c=r*r/4-x*x;
y1=(-b-sqrt(b*b-4*a*c))/(2*a);
y2=(-b+sqrt(b*b-4*a*c))/(2*a);
if(fabs(x-0)<1e-7)
{
x1=-sqrt(r*r-y1*y1);
x2=sqrt(r*r-y2*y2);
}
else
{
x1=(-r*r/2-y*y1)/x;
x2=(-r*r/2-y*y2)/x;
}
printf("%.3lf %.3lf %.3lf %.3lf\n",x1,y1,x2,y2);
}
return 0;
}
分析:这是一个几何体,大致意思就是说圆上有三个点问你当它们分别在哪时,两点间的距离最大,实质就是构成一个等边三角时,距离最大,告诉你一个点的坐标让你求另外两个点的坐标.
首先可以求出圆的半径,然后用两个公式求解方程组
a*b=|a|*|b|*cos(120);
x*x+y*y=r*r;
标签:
原文地址:http://www.cnblogs.com/lbyj/p/5696867.html