Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 원이 C++에서 두 개의 동심원으로 형성된 고리 내부에 완전히 있는지 확인하십시오.

<시간/>

우리는 두 개의 원이 있습니다. 그 둘의 중심은 원점이다. 이 두 원의 반지름이 주어집니다. 그들은 r 및 R, R> r입니다. 또 다른 원이 있습니다. 반지름(r1)과 중심점이 주어지면 그 점이 처음 두 개의 원으로 형성된 고리 내부에 있는지 확인해야 합니다.

주어진 원이 C++에서 두 개의 동심원으로 형성된 고리 내부에 완전히 있는지 확인하십시오.

우리는 이것을 피타고라스 정리를 사용하여 풀 수 있습니다. 원과 원점의 중심으로부터의 거리를 계산합니다. 그런 다음 (distance – r1)>=r 및 (distance – r1) <=R이면 둘 다 참이면 원이 링 안에 있습니다.

#include <iostream>
#include <cmath>
using namespace std;
bool isInside(int r, int R, int r1, int x, int y) {
   int dis = sqrt(x*x+y*y);
   return (dis-r1 >= R && dis+r1 <= r);
}
int main() {
   int r = 8, R = 4, r1 = 2, x = 6, y = 0;
   if (isInside(r, R, r1, x, y))
      cout << "Circle is inside the ring." << endl;
   else
      cout << "Circle is not inside the ring." << endl;
}

출력

Circle is inside the ring.