오늘도 역시 원을 계속 그려나가는 문제를 들고왔습니다.
문제가 영어로 써있지만 전혀 중요하지 않습니다.
구글 번역기의 힘을 잠깐 빌려볼까요?
짜잔! 자 이제 문제를 풀어봅시다.
서로 붙어있는 작은 원을 2개만 골라볼까요?
큰 원의 중심과 작은 원의 중심으로 이루어진 삼각형을 생각해봅시다.
길이가 로 이루어진 이등변 삼각형이 만들어집니다.
큰 원의 중심을 , 작은 원의 중심을 각각 라고 하겠습니다.
이고, 점 에서 로 수선의 발을 긋고 이 점을 라고 하면,
입니다.
삼각함수를 이용하면, 이고,
식을 에 대해 정리하면 입니다.
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(0);
int N, n;
cin >> N;
cout.setf(ios::fixed);
cout.precision(3);
for (int i = 1; i <= N; i++) {
cout << "Scenario #" << i << ":\n";
double R;
cin >> R >> n;
cout << R * sin(M_PI / n) / (1 + sin(M_PI / n)) << "\n\n";
}
cout.unsetf(ios::fixed);
}
문제를 꾸준히 풀다보니 점점 성취감과 뿌듯함이 느껴지네요! 앞으로 더 열심히 풀어야겠어요