不正经题解|圆-切线
2024-06-11 12:55:57
发布于:广东
31阅读
0回复
0点赞
就是一道简单数学题,对各种情况进行分析即可,代码:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
double Len(int x1,int y1,int x2,int y2) {
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main() {
int T;
scanf("%d",&T);
while (T--) {
int x1,y1,r1,x2,y2,r2;
scanf("%d %d %d%d %d %d",&x1,&y1,&r1,&x2,&y2,&r2);
double k=Len(x1,y1,x2,y2);
if (r1==r2) {
if (k>r1+r2) {
printf("4\n");
}else if (k==r1+r2) {
printf("3\n");
}else if (k>0){
printf("2\n");
}else {
printf("INF\n");
}
}else {
if (k>r1+r2) {
printf("4\n");
}else if (k==r1+r2) {
printf("3\n");
}else if (k>abs(r1-r2)) {
printf("2\n");
}else if (k==abs(r1-r2)) {
printf("1\n");
}else {
printf("0\n");
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个