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

C++로 연(Kite) 패턴을 출력하는 프로그램

이 튜토리얼에서는 C++를 사용해 주어진 연(Kite) 패턴을 출력하는 프로그램을 자세히 살펴보겠습니다.

입력값은 N=5로 가정합니다. 우리의 목표는 전체 높이가 2N+1, 즉 총 11줄에 해당하는 연 모양 구조를 화면에 출력하는 것입니다. 이 구조는 위쪽의 완성된 다이아몬드 형태 9줄과 아래쪽의 불완전한 다이아몬드 형태 2줄로 이루어져 있습니다.

예제 코드

#include <bits/stdc++.h>
#include <stdlib.h>
using namespace std;
int main(){
    int i, j, k, sp, space = 4;
    char prt = '$';
    // 첫 번째 다이아몬드의 윗부분 출력
    for (i = 1; i <= 5; i++){
        // 앞부분 공백 출력
        for (sp = space; sp >= 1; sp--){
            cout << " ";
        }
        // $ 문자 출력
        for (j = 1; j <= i; j++){
            cout << prt;
        }
        for (k = 1; k <= (i - 1); k++){
            if (i == 1){
                continue;
            }
            cout << prt;
        }
        cout << "\n";
        space--;
    }
    space = 1;
    // 첫 번째 다이아몬드의 아랫부분 출력
    for (i = 4; i >= 1; i--){
        for (sp = space; sp >= 1; sp--) {
            cout << " ";
        }
        for (j = 1; j <= i; j++){
            cout << prt;
        }
        for (k = 1; k <= (i - 1); k++){
            cout << prt;
        }
        space++;
        cout << "\n";
    }
    space = 3;
    // 두 번째 불완전한 다이아몬드 출력
    for (i = 2; i <= 5; i++){
        if ((i % 2) != 0){
            for (sp = space; sp >= 1; sp--){
                cout << " ";
            }
            for (j = 1; j <= i; j++){
                cout << prt;
            }
        }
        if ((i % 2) != 0) {
            cout << "\n";
            space--;
        }
    }
    return 0;
}

실행 결과

      $
     $$$
    $$$$$
   $$$$$$$
  $$$$$$$$$
   $$$$$$$
    $$$$$
     $$$
      $
     $$$
    $$$$$

코드 작동 원리

  1. 다이아몬드 상단 부분: 바깥 반복문이 1부터 5까지 순회하면서, 각 줄마다 앞쪽 공백을 먼저 출력한 후 $ 문자를 홀수 개씩 늘려가며 출력합니다. 한 줄이 완성될 때마다 공백 변수 space를 1씩 감소시켜 피라미드 모양을 만듭니다.
  2. 다이아몬드 하단 부분: 반복문이 4부터 1까지 역순으로 순회하며, 공백은 점점 늘리고 $ 문자는 줄여나가 위쪽과 대칭되는 구조를 완성합니다.
  3. 연 꼬리 부분: 세 번째 반복문은 홀수 번째 줄만 골라 출력하여 불완전한 다이아몬드 형태의 꼬리를 그려냅니다. 짝수 번째 줄은 건너뛰기 때문에 최종적으로 두 줄만 출력됩니다.