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

C++로 정삼각형에 내접하는 원의 넓이 구하기

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

수학적 접근 방법

먼저 정삼각형의 넓이 공식은 다음과 같습니다.

정삼각형의 넓이 = (√3 / 4) × a²

다음으로 삼각형의 반둘레(semi-perimeter)는 세 변의 합을 2로 나눈 값입니다.

반둘레(s) = 3a / 2

삼각형에 내접하는 원(내접원)의 반지름은 삼각형의 넓이를 반둘레로 나눈 값과 같다는 성질을 이용하면 다음과 같이 계산할 수 있습니다.

r = 넓이 / 반둘레 = [(√3 / 4) × a²] ÷ (3a / 2) = a / (2√3)

따라서 내접하는 원의 넓이는 다음 공식으로 구할 수 있습니다.

원의 넓이 = π × r² = π × (a / (2√3))²

C++ 예제 코드

위 공식을 C++ 코드로 구현한 예제입니다. 변의 길이가 음수로 입력되면 유효하지 않은 값으로 판단하여 -1을 반환하도록 처리했습니다.

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

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

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

실행 결과

Area is: 4.18867

코드 설명

변의 길이 a가 4일 경우, 반지름은 4 / (2√3) ≈ 1.1547이 되고, 여기에 π(3.1415)를 곱해 제곱하면 약 4.18867이라는 결과가 나옵니다. 이처럼 내접원의 넓이는 변의 길이만 알면 간단한 수식 하나로 계산할 수 있으며, 시간 복잡도는 O(1)로 상수 시간에 처리됩니다.