728x90
1) 주석 없는 VERSION
#include <iostream>
#include <cmath>
#include <stdio.h>
using namespace std;
int main() {
int x1, y1, r1, x2, y2, r2;
int t;
cin >> t;
for (int i = 0;i < t;i++) {
cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
double d;
d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
if (d == 0.0) {
if (r1 == r2) {
cout << "-1" << "\n";
}
else {
cout << "0" << "\n";
}
}
else if (d > abs(r1 - r2) && d < r1+r2) {
cout << "2" << "\n";
}
else if (d == r1+r2||d==abs(r1-r2)) {
cout << "1" << "\n";
}
else {
cout << "0" << "\n";
}
}
}
2) 주석 있는 VERSION
#include <iostream>
#include <cmath>
#include <stdio.h>
using namespace std;
int main() {
int x1, y1, r1, x2, y2, r2;
int t;
cin >> t;
for (int i = 0;i < t;i++) {
cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
// 조규현과 백승환 사이의 거리를 계산
double d;
d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
// 두 사람이 같은 위치에 있을 때
if (d == 0.0) {
// 반지름도 같다면 무한대
if (r1 == r2) {
cout << "-1" << "\n";
}
//반지름이 다르다면 류재명이 있을 수 있는 좌표는 없다.
//두 개의 원이 겹치지 않으므로
else {
cout << "0" << "\n";
}
}
//두 개의 원이 두 점에 겹칠 때의 공식
else if (d > abs(r1 - r2) && d < r1 + r2) {
cout << "2" << "\n";
}
//두 개의 원이 한 점에 겹칠 때의 공식
else if (d == r1+r2||d==abs(r1-r2)) {
cout << "1" << "\n";
}
//아닌 경우
else {
cout << "0" << "\n";
}
}
}
'BEAKJOON' 카테고리의 다른 글
백준(10870번 피보나치 수 5)풀이 C++ (0) | 2021.01.15 |
---|---|
백준(10872번 팩토리얼)풀이 C++ (0) | 2021.01.15 |
백준(3053번 택시 기하학)풀이 C++ (0) | 2021.01.14 |
백준(4153번 직각삼각형)풀이 C++ (0) | 2021.01.14 |
백준(3009번 네 번째 점)풀이 C++ (0) | 2021.01.14 |