이 문제에서는 정오각형의 한 변의 길이를 나타내는 숫자 n이 주어지며, 이를 이용해 C++로 오각형의 넓이를 계산하는 프로그램을 작성하는 것이 목표입니다.
오각형(Pentagon)은 다섯 개의 변을 가진 도형을 의미합니다.
정오각형이란?
정오각형(Regular Pentagon)은 다섯 개의 변의 길이와 다섯 개의 내각의 크기가 모두 같은 오각형을 말합니다.
문제 이해를 위한 예시
입력
a = 7
출력
84.3
해결 접근 방법
이 문제는 기하학에서 제공하는 정오각형 넓이 공식을 직접 사용하면 간단하게 해결할 수 있습니다.
정오각형의 넓이 공식은 다음과 같습니다.
Area = (a² / 4) × √(5(5 + 2√5))
이 식을 간소화하면 다음과 같이 표현할 수도 있습니다.
Area = (6.8819 × a²) / 4
여기서 a는 정오각형 한 변의 길이를 의미합니다. 상수 6.8819는 √(5(5 + 2√5))를 미리 계산해 둔 값으로, 코드의 실행 효율을 높여줍니다.
C++ 구현 예제
#include <iostream>
using namespace std;
float calcpentagonArea(int a){
return (((6.8819) * a * a) / 4);
}
int main() {
int a = 7;
cout << "한 변의 길이가 " << a << "인 정오각형의 넓이는 " << calcpentagonArea(a);
return 0;
}실행 결과
한 변의 길이가 7인 정오각형의 넓이는 84.3033
코드 설명
위 프로그램은 calcpentagonArea라는 함수를 통해 정오각형의 넓이를 계산합니다. 함수 내부에서는 앞서 소개한 간소화된 공식인 (6.8819 × a²) / 4를 그대로 반환하며, main 함수에서 한 변의 길이 7을 인자로 전달하여 결과를 출력합니다.
이처럼 수학 공식을 코드로 옮기기만 하면 되기 때문에 시간 복잡도는 O(1)로, 매우 효율적인 해결 방법입니다.