이 튜토리얼에서는 1부터 n까지의 숫자 패턴을 활용하여 알파벳 'N' 모양을 출력하는 C++ 프로그램을 다룹니다.
목표는 영어 알파벳 'N'을 화면에 그려내는 것입니다. 먼저 글자의 크기(n)를 정한 뒤, 각 줄마다 왼쪽 열, 오른쪽 열, 그리고 대각선에 해당하는 자리에 1부터 차례대로 증가하는 숫자를 배치하여 'N' 형태를 완성하게 됩니다.
동작 원리
프로그램은 세 개의 카운터 변수를 사용합니다.
- Left: 각 행의 가장 왼쪽에 출력되는 숫자
- Right: 각 행의 가장 오른쪽에 출력되는 숫자
- Diagonal: 'N'의 대각선 부분에 출력되는 숫자
첫 번째 행과 마지막 행에서는 대각선 자리를 공백으로 비워두고, 나머지 중간 행들에서만 대각선 숫자를 출력합니다. 또한 각 행마다 왼쪽과 오른쪽 사이의 공백 개수를 조절하여 대각선이 자연스럽게 기울어진 'N' 모양이 만들어지도록 합니다.
예제 코드
#include <iostream>
using namespace std;
//알파벳 N을 출력하는 함수
void print_N(int N){
int index, side_index, size;
int Right = 1, Left = 1, Diagonal = 2;
for (index = 0; index < N; index++) {
cout << Left++;
for (side_index = 0; side_index < 2 * (index);
side_index++)
cout << " ";
if (index != 0 && index != N - 1)
cout << Diagonal++;
else
cout << " ";
for (side_index = 0; side_index < 2 * (N - index - 1);
side_index++)
cout << " ";
cout << Right++;
cout << endl;
}
}
int main(int argc, char** argv){
int Size = 8;
print_N(Size);
return 0;
}출력 결과
크기(Size)를 8로 설정하여 실행하면 다음과 같은 결과가 출력됩니다.
1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8
위 결과에서 볼 수 있듯이, 왼쪽 열에는 1부터 8까지 위에서 아래로 숫자가 채워지고, 오른쪽 열 역시 같은 방식으로 채워집니다. 대각선에는 2부터 시작하는 숫자가 배치되어 마치 알파벳 'N'의 사선처럼 보이게 됩니다. Size 값을 변경하면 더 크거나 작은 'N' 모양을 손쉽게 출력할 수 있습니다.