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

C++로 십이면체의 표면적 계산하기: 공식과 코드 예제


십이면체(Dodecahedron)란 무엇인가?

'십이면체(dodecahedron)'라는 단어는 그리스어에서 유래했습니다. 여기서 'dodeca'는 '열둘'을, 'hedron'은 '면'을 의미합니다. 기하학에서 십이면체는 열두 개의 평면으로 이루어진 3차원 정다면체(platonic solid)를 말합니다.

다른 도형들과 마찬가지로 십이면체도 고유한 성질을 가지고 있으며, 그 내용은 다음과 같습니다.

  • 20개의 꼭짓점(vertex)
  • 30개의 모서리(edge)
  • 12개의 정오각형 면 — 오각형(pentagon)은 다섯 개의 변을 가진 다각형입니다.

아래는 십이면체의 형태를 나타낸 그림입니다.

C++로 십이면체의 표면적 계산하기: 공식과 코드 예제

문제 정의

한 변의 길이가 주어졌을 때, 프로그램은 해당 십이면체의 표면적을 계산해야 합니다. 여기서 표면적이란 주어진 도형의 모든 면이 차지하는 전체 공간의 넓이를 의미합니다.

십이면체의 표면적을 계산하기 위한 공식은 다음과 같습니다.

C++로 십이면체의 표면적 계산하기: 공식과 코드 예제

공식을 텍스트로 표현하면 A = 3√(25 + 10√5) × a²이며, 여기서 a는 한 변의 길이입니다.

예시

입력 -: side=5
출력 -: 516.143

알고리즘

시작
1단계 -> 십이면체의 면적을 구하는 함수 선언
    double area(int side)
        return ((3 * sqrt(25 + 10 * (sqrt(5)))) * (pow(side, 2)))
2단계 -> main() 함수에서
    변수 int side=5 선언
    area(side) 결과 출력
종료

코드 구현

#include <bits/stdc++.h>
using namespace std;
// 십이면체의 표면적을 구하는 함수
double area(int side){
    return ((3 * sqrt(25 + 10 * (sqrt(5)))) * (pow(side, 2))) ;
}
int main(){
    int side = 5;
    cout<< "Surface area of dodecahedron is : " << area(side);
    return 0;
}

출력 결과

Surface area of dodecahedron is : 516.143

위 코드에서 sqrt() 함수는 제곱근을 계산하고, pow(side, 2) 함수는 변의 길이를 제곱합니다. 두 함수 모두 C++의 수학 라이브러리인 <cmath>(bits/stdc++.h에 포함됨)에서 제공되므로 별도의 구현 없이 바로 사용할 수 있습니다. 한 변의 길이가 5일 때, 계산된 십이면체의 표면적은 약 516.143이 됩니다.