728x90
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double d;
int x1, x2, y1, y2, r1, r2, t = sc.nextInt();
for( int i = 0; i < t; i++ ) {
x1 = sc.nextInt();
y1 = sc.nextInt();
r1 = sc.nextInt();
x2 = sc.nextInt();
y2 = sc.nextInt();
r2 = sc.nextInt();
d = Math.sqrt( ((x1-x2)*(x1-x2)) + ((y1-y2)*(y1-y2)) );
if( (d == 0) && (r1 == r2) ) {
System.out.println(-1);
continue;
}
if( (Math.abs(r1-r2) < d) && (d < r1+r2) )
System.out.println(2);
if( (Math.abs(r1-r2) == d) || (d == r1+r2) )
System.out.println(1);
if( (Math.abs(r1-r2) > d) || (d > r1+r2) || (d == 0) )
System.out.println(0);
}
sc.close();
}
}
원1
중심 좌표 : ( x1, y1 )
반지름 : r1
원2
중심 좌표 : ( x2, y2 )
반지름 : r2
두 원의 중심 좌표 사이의 거리 : d
------------------------------------
두 원의 교점의 개수 구하기
2개 | r1-r2 < d < r1+r2 |
1개 | r1-r2 = d or r1+r2 = d |
0개 | r1-r2 > d or r1+r2 < d |
무한대 | d = 0 and r1 = r2 |
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] (10870) 피보나치 수 5 / 재귀 (0) | 2020.03.11 |
---|---|
[백준(Baekjoon)][자바(java)] (10872) 팩토리얼 / 재귀 (0) | 2020.03.11 |
[백준(Baekjoon)][자바(java)] (3053) 택시 기하학 / 수학 2 (0) | 2020.03.11 |
[백준(Baekjoon)][자바(java)] (4153) 직각삼각형 / 수학 2 (0) | 2020.03.11 |
[백준(Baekjoon)][자바(java)] (3009) 네 번째 점 / 수학 2 (0) | 2020.03.10 |