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

C++로 구현하는 중심이십면체 수(Centered Icosahedral Number) 계산 프로그램

이 글에서는 값 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