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

C++로 구하는 정육각형에 내접하는 가장 큰 삼각형의 넓이

이번 글에서는 정육각형에 내접하는 가장 큰 삼각형의 넓이를 구하는 방법을 알아보겠습니다. 정육각형의 한 변의 길이를 'a', 내접하는 삼각형의 한 변의 길이를 'b'라고 하겠습니다.

정육각형의 마주 보는 세 꼭짓점을 이으면 가장 큰 정삼각형이 만들어집니다. 육각형의 각 변은 이 삼각형의 변을 두 부분으로 나누며, 그 사이에는 직각삼각형 두 개가 형성됩니다.

수식 유도 과정

피타고라스 정리를 적용하면 다음과 같은 관계식을 얻을 수 있습니다.

(b/2)² + (a/2)² = a²

이 식을 정리하면 삼각형의 한 변의 길이는 다음과 같습니다.

b = √3 × a

정삼각형의 넓이 공식(√3/4)×변²에 대입하면, 내접하는 가장 큰 삼각형의 넓이는 다음과 같이 계산됩니다.

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

C++ 구현 예제

위 공식을 C++ 코드로 구현하면 아래와 같습니다. 입력값이 음수일 경우 유효하지 않은 값으로 처리하여 -1을 반환합니다.

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

float area(float a) {
    if (a < 0) // 값이 음수이면 유효하지 않음
        return -1;
    float area = (3 * sqrt(3) * pow(a, 2)) / 4;
    return area;
}

int main() {
    float a = 6;
    cout << "Area : " << area(a);
}

실행 결과

Area : 46.7654

한 변의 길이가 6인 정육각형에 내접하는 가장 큰 삼각형의 넓이는 약 46.7654입니다. 이처럼 피타고라스 정리를 활용해 삼각형의 변의 길이만 유도하면 간단한 공식 하나로 넓이를 손쉽게 계산할 수 있습니다.