给出平面坐标中两个圆的圆心坐标与半径,判断这两个圆是否相交(即圆边有交点),是则输出yes,否则输出no。
输入格式
两行,每行三个数,分别为X坐标,Y坐标以及半径
输出格式
yes或no
输入样例
1.1 1.1 1.1
2.2 2.2 1.5
输出样例
yes
#include<stdio.h>
#include<math.h>
int main()
{
double x1,y1,r1,x2,y2,r2,d,r_max,r_min,r_2;
scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&r1,&x2,&y2,&r2);
d = sqrt((y1-y2)*(y1-y2) + (x1-x2)*(x1-x2));
r_2=r1+r2;
(r1>r2)?(r_max=r1):(r_max=r2);
(r_max==r1)?(r_min=r2):(r_min=r1);
if(d>r_max)
{
if(d<=r_2) printf("yes");
else printf("no");
}
else if(d<=r_max)
{
if(d==r_max) printf("yes");
else if(d+r_min>=r_max) printf("yes");
else printf("no");
}
return 0;
}