Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 N변 정다각형에 내접하는 가장 큰 원의 면적 구하기

정다각형 내부에 그릴 수 있는 가장 큰 원은 모든 변에 동시에 접하는 내접원(inscribed circle)입니다. 이 원의 반지름은 다각형의 중심에서 한 변까지의 거리, 즉 '아포팀(apothem)'과 같으며, 다음 공식으로 구할 수 있습니다.

r = a / (2 × tan(180/n))

여기서 a는 정다각형 한 변의 길이, n은 변의 개수입니다.

수학적 유도 과정

정n각형은 중심을 기준으로 n개의 합동인 이등변삼각형으로 나눌 수 있습니다. 중심에서의 전체 각도는 360°이므로, 삼각형 하나가 차지하는 중심각은 360/n°입니다.

이 삼각형을 다시 반으로 나누면 밑변이 a/2, 높이가 r인 직각삼각형이 되며, 그 꼭짓점의 각도 x는 다음과 같습니다.

x = 180/n

tan(x) = (a/2) / r
→ r = a / (2 × tan(x))

내접원의 넓이:
A = πr² = π × (a / (2 × tan(x)))²

예제: 정육각형(n = 6)

한 변의 길이가 4인 정육각형을 생각해 보겠습니다. 이때 각도 x는 30°이며, 반지름과 면적은 다음과 같이 계산됩니다.

r = 4 / (2 × tan(30°)) = 4 / (2 × (1/√3)) = 2√3 ≈ 3.4641
A = π × r² ≈ 3.14 × 12 ≈ 37.68

C 프로그램 구현

C의 math.h 라이브러리에 있는 tan() 함수는 라디안 단위를 사용하므로, 도(degree) 단위의 각도에 π/180을 곱해 라디안으로 변환한 뒤 계산해야 합니다.

#include <stdio.h>
#include <math.h>

int main() {
    float area;
    float n = 6;
    float a = 4;

    // 각도를 라디안으로 변환한 후 tan 적용
    float r = a / (2 * tan((180 / n) * 3.14159 / 180));

    area = 3.14 * r * r;

    printf("area = %f\n", area);
    return 0;
}

실행 결과

area = 37.6801

정리

  • 정다각형에 내접하는 가장 큰 원의 반지름 공식: r = a / (2·tan(180/n))
  • 내접원의 면적: A = πr²
  • C의 삼각함수는 라디안을 사용하므로 반드시 π/180 변환이 필요
  • 예제(정육각형, 한 변의 길이 4)의 계산 결과는 약 37.6801