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

C++로 구현하는 삼각형 패턴 프로그램 (0 기준 미러 이미지 출력)

양의 정수 n이 주어졌을 때, 숫자들이 0을 중심으로 좌우 대칭(미러 이미지) 형태로 배치된 삼각형 패턴을 생성하고 그 결과를 화면에 출력하는 프로그램을 만들어 보겠습니다.

예시

입력 -: n = 6
출력 -:

C++로 구현하는 삼각형 패턴 프로그램 (0 기준 미러 이미지 출력)

입력 -: n = 3
출력 -:

C++로 구현하는 삼각형 패턴 프로그램 (0 기준 미러 이미지 출력)

프로그램에 적용된 접근 방식

  • n의 값을 양의 정수로 입력받습니다.
  • 패턴의 행(row) 개수만큼 첫 번째 반복문 i를 순회합니다.
  • 패턴에 들어갈 공백의 개수만큼 두 번째 반복문 j를 순회합니다.
  • 패턴에 출력될 숫자들을 처리하기 위한 세 번째 반복문을 순회합니다.

알고리즘

시작
1단계 -> 삼각형 패턴의 미러 이미지를 출력하는 함수 선언
    void print_mirror(int n)
    int temp = 1, temp2 = 1로 선언 및 초기화
        int i = 0부터 i < n까지 i++ 반복
            int j = n - 1부터 j > i까지 j-- 반복
                공백 출력
            종료
            int k = 1부터 k <= temp까지 k++ 반복
                abs(k - temp2) 값 출력
            종료
            temp += 2 설정
            temp2++ 증가
            줄바꿈 문자(\n) 출력
2단계 -> main() 함수에서
    int n = 6 선언
    print_mirror(n) 호출
종료

C++ 코드 예제

#include <bits/stdc++.h>
using namespace std;
// 삼각형 패턴의 미러 이미지를 출력하는 함수
void print_mirror(int n) {
    int temp = 1, temp2 = 1;
    for (int i = 0; i < n; i++) {
        for (int j = n - 1; j > i; j--) {
            cout << " ";
        }
        for (int k = 1; k <= temp; k++) {
            cout << abs(k - temp2);
        }
        temp += 2;
        temp2++;
        cout << "\n";
    }
}
int main() {
    int n = 6;
    print_mirror(n);
    return 0;
}

출력 결과

C++로 구현하는 삼각형 패턴 프로그램 (0 기준 미러 이미지 출력)

위 코드에서 핵심은 abs(k - temp2) 연산입니다. 각 행마다 temp는 홀수(1, 3, 5, ...)로 증가하여 해당 행의 숫자 개수를 결정하고, temp2는 절댓값 계산의 기준점 역할을 하여 0을 중심으로 좌우 대칭인 숫자열을 만들어 냅니다. 공백 출력 반복문이 각 행 앞부분을 채워 전체적으로 피라미드 모양의 미러 이미지가 완성됩니다.