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

C++ 프로그램으로 육각형에 내접하는 원 안에 내접하는 정사각형의 넓이 구하기

이 글에서는 육각형에 내접하는 원 안에 다시 정사각형이 내접해 있는 경우, 그 정사각형의 넓이를 구하는 방법을 알아보겠습니다.

여기서 각 변수는 다음과 같이 정의됩니다.

  • 정사각형의 한 변의 길이: a
  • 원의 반지름: r
  • 육각형의 한 변의 길이: A

수식 유도 과정

1단계: 육각형에 내접하는 원의 반지름

한 변의 길이가 A인 정육각형에 내접하는 원의 반지름은 다음 공식으로 구할 수 있습니다.

r = (√3 / 2) × A

정육각형은 6개의 정삼각형으로 나눌 수 있고, 내접원의 반지름은 정삼각형의 높이와 같기 때문에 위와 같은 공식이 성립합니다.

2단계: 원에 내접하는 정사각형의 변의 길이

원에 내접하는 정사각형의 대각선은 곧 원의 지름과 같습니다. 즉, 대각선의 길이는 2r입니다.

정사각형의 대각선 길이는 변의 길이에 √2를 곱한 값이므로 다음 관계가 성립합니다.

a × √2 = 2r
a = √2 × r

3단계: 정사각형의 넓이 계산

위 두 식을 조합하면 정사각형의 넓이는 다음과 같이 유도됩니다.

넓이 = a² = 2 × r²
= 2 × ((√3 / 2) × A)²
= 2 × (3A² / 4)
= (3 / 2) × A²

결론적으로, 정사각형의 넓이는 육각형 한 변의 길이 A에 대해 (3/2) × A²로 간단하게 표현할 수 있습니다.

C++ 구현 예제

위 공식을 C++ 코드로 구현하면 다음과 같습니다.

#include <iostream>
#include <cmath>
using namespace std;

float area(float A) { // A는 육각형의 한 변의 길이
    if (A < 0) // 음수 값은 유효하지 않음
        return -1;
    float area = (A * A) * float(3.0 / 2.0);
    return area;
}

int main() {
    float side = 5;
    cout << "Area is: " << area(side);
}

실행 결과

Area is: 37.5

결과 검증

육각형의 한 변의 길이가 5일 때, 넓이는 (3/2) × 5² = (3/2) × 25 = 37.5로 계산되어 프로그램의 출력과 일치합니다.

입력값이 음수인 경우에는 유효하지 않은 길이이므로 -1을 반환하여 오류 상황을 처리하도록 구현했습니다.