이 글에서는 값 n이 주어졌을 때, 해당 n에 대한 중심이십면체 수(Centered Icosahedral Number)를 계산하고, n까지의 중심이십면체 수열을 생성하여 결과를 출력하는 C++ 프로그램을 다룹니다.
중심이십면체 수란 무엇인가?
중심이십면체 수는 이십면체(icosahedron)를 표현하는 데 사용되는 중심 다각형수(centered figurate number)의 일종입니다. 여기서 이십면체란 20개의 면을 가진 정다면체 도형을 의미합니다.
n = 1000까지의 첫 번째 중심이십면체 수열은 다음과 같습니다.
1, 13, 55, 147, 309, 561, 923
중심이십면체 수는 아래 공식을 사용하여 계산할 수 있습니다.
$$(2n+1)\times\frac{5n^{2}+5n+3}{3}$$
입력 예시
number: 20
출력 예시
Centered Icosahedral Number is : 28741
입력 예시
number: 12
출력 예시
Centered Icosahedral Number is : 6525
알고리즘
Start Step 1→ 중심이십면체 수를 계산하는 함수 선언 int calculate(int num) return (2 * num + 1) * (5 * num * num + 5 * num + 3) / 3 Step 2→ main() 함수에서 정수형 변수 int num = 20 선언 calculate(num) 결과 출력 Stop
C++ 코드 예제
#include <bits/stdc++.h>
using namespace std;
//중심이십면체 수 계산 함수
int calculate(int num){
return (2 * num + 1) * (5 * num * num + 5 * num + 3) / 3;
}
int main(){
int num = 20;
cout<<"Centered Icosahedral Number is : "<<calculate(num) << endl;
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 출력 결과가 생성됩니다.
Centered Icosahedral Number is : 28741