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

C++ 반복문으로 피라미드 형태의 숫자 패턴 출력하기

개요

이 튜토리얼에서는 C++을 사용하여 특정 숫자 패턴을 출력하는 프로그램을 작성하는 방법을 알아봅니다.

목표는 코드에서 반복문(loop) 구조를 활용해 아래와 같은 피라미드 형태의 숫자 패턴을 화면에 출력하는 것입니다.

    1
   232
  34543
 4567654
567898765

패턴 분석

패턴을 자세히 살펴보면 다음과 같은 규칙을 발견할 수 있습니다.

  • 총 5개의 행(row)으로 구성되어 있으며, 각 행은 왼쪽에 공백이 채워져 피라미드 모양을 이룹니다.
  • 각 행의 가장 왼쪽 숫자는 해당 행의 번호와 같습니다. 즉, 1번째 행은 1부터, 2번째 행은 2부터 시작합니다.
  • 행의 중앙까지는 숫자가 1씩 증가하고, 중앙을 지나면 다시 1씩 감소하며 대칭을 이룹니다.

예를 들어 3번째 행은 3 → 4 → 5 → 4 → 3처럼 증가 후 감소하는 구조입니다.

예제 코드

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n = 5, i, j, num = 1, gap;
    gap = n - 1;
    for ( j = 1 ; j <= n ; j++ ){
        num = j;
        for ( i = 1 ; i <= gap ; i++ )
        cout << " ";
        gap --;
        for ( i = 1 ; i <= j ; i++ ){
            cout << num;
            num++;
        }
        num--;
        num--;
        for ( i = 1 ; i < j ; i++){
            cout << num;
            num--;
        }
        cout << "\n";
    }
    return 0;
}

코드 동작 원리

  1. 변수 초기화: n은 출력할 행의 개수(5), num은 각 행의 시작 숫자, gap은 각 행 앞에 붙일 공백의 개수입니다. 초기값은 n - 1, 즉 4입니다.
  2. 외부 반복문: j가 1부터 n까지 증가하며 각 행을 담당합니다. 매 행이 시작될 때 numj로 설정하여 해당 행의 시작 숫자를 정합니다.
  3. 공백 출력: 첫 번째 내부 반복문이 gap만큼 공백을 출력한 뒤 gap을 1씩 줄여, 아래로 갈수록 공백이 줄어드는 피라미드 형태를 만듭니다.
  4. 증가 부분 출력: 두 번째 내부 반복문은 j번만큼 숫자를 출력하며 매번 num을 1씩 증가시킵니다. 이때 마지막에 num이 한 번 더 증가된 상태이므로, 이후 두 번 감소(num--; num--;)시켜 대칭 지점으로 되돌립니다.
  5. 감소 부분 출력: 세 번째 내부 반복문은 j - 1번만큼 숫자를 출력하며 num을 1씩 감소시켜 좌우 대칭을 완성합니다.
  6. 줄바꿈: 한 행의 출력이 끝나면 \n으로 줄을 바꾸고 다음 행으로 넘어갑니다.

실행 결과

    1
   232
  34543
 4567654
567898765

마무리

이 프로그램은 중첩 반복문(nested loop)과 변수 값의 증감 제어만으로 복잡해 보이는 숫자 패턴을 손쉽게 구현할 수 있음을 보여주는 좋은 예제입니다. n 값만 변경하면 원하는 크기의 피라미드 패턴을 자유롭게 출력할 수 있으니, 직접 값을 바꿔가며 연습해 보시기 바랍니다.