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

C++로 중심 구각수(Centered Nonagonal Number) 계산하기

n이 주어졌을 때, n번째 중심 구각수(centered nonagonal number)를 계산하고 n까지의 중심 구각수 수열을 생성한 뒤 그 결과를 출력하는 C++ 프로그램을 만들어 보겠습니다.

중심 구각수란?

중심 구각수는 하나의 중심점을 기준으로 점(dot)들이 구각형(9각형) 모양의 층을 이루며 겹겹이 쌓인 형태입니다. 가운데 점 하나를 두고 그 주위로 구각형 테두리가 차례대로 둘러싸인 도형에서 점의 총 개수가 바로 중심 구각수가 됩니다.

C++로 중심 구각수(Centered Nonagonal Number) 계산하기

위 그림은 두 번째 중심 구각수 N2를 나타낸 것입니다. 중심 구각수는 다음 공식으로 계산할 수 있습니다.

Nc(n) = (3n − 2) × (3n − 1) / 2

예를 들어 n = 5라면 (15 − 2) × (15 − 1) / 2 = 13 × 14 / 2 = 91이 되므로, 다섯 번째 중심 구각수는 91입니다.

입력 · 출력 예시

입력

number: 20

출력

centered nonagonal number : 1711

입력

number: 10

출력

centered nonagonal series : 1 10 28 55 91 136 190 253 325 406

알고리즘

시작
1단계 → 중심 구각수를 계산하는 함수 선언
    int calculate_number(int num)
        return (3 * num - 2) * (3 * num - 1) / 2
2단계 → 중심 구각수 수열을 계산하는 함수 선언
    int calculate_series(int num)
        Loop For int i = 1 and i <= num and i++
            Print (3 * i - 2) * (3 * i - 1) / 2
        End
3단계 → main() 함수에서
    int num = 20 선언
    calculate_number(num) 호출
    num = 10 선언
    calculate_series(num) 호출
종료

C++ 구현 예제

#include <bits/stdc++.h>
using namespace std;

// 중심 구각수를 계산하는 함수
int calculate_number(int num){
    return (3 * num - 2) * (3 * num - 1) / 2;
}

// n까지의 중심 구각수 수열을 출력하는 함수
int calculate_series(int num){
    for (int i = 1; i <= num; i++){
        cout << (3 * i - 2) * (3 * i - 1) / 2;
        cout << " ";
    }
}

int main(){
    int num = 20;
    cout << "centered nonagonal number : " << calculate_number(num) << endl;
    num = 10;
    cout << "centered nonagonal series : ";
    calculate_series(num);
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

centered nonagonal number : 1711
centered nonagonal series : 1 10 28 55 91 136 190 253 325 406