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

C#으로 삼각형 모양의 숫자 출력하기: 파스칼 삼각형 구현 방법

C#에서 숫자를 삼각형 형태로 출력하려면 먼저 2차원 배열을 준비해야 합니다. 이 배열은 삼각형의 각 행과 열에 해당하는 값을 저장하는 역할을 합니다.

int[] a = new int[5, 5];

삼각형 모양을 만들기 위해서는 아래와 같이 각 행 앞에 들어갈 공백까지 함께 고려해야 합니다.

1
1 1
1 2 1
1 3 3 1

이 패턴은 흔히 파스칼 삼각형(Pascal's Triangle)이라고 불립니다. 규칙은 간단합니다. 좌우 양 끝 값은 항상 1로 채우고, 그 외의 값은 바로 위 행의 인접한 두 값을 더한 결과가 됩니다. 이제 반복문을 사용해 왼쪽과 오른쪽에 1을 배치하면서 삼각형을 완성해 보겠습니다.

예제 코드

using System;

class Demo {
    public static void Main() {
        // 2차원 배열 선언
        int[] a = new int[5, 5];

        for (int i = 0; i < 5; i++) {
            // 삼각형 모양을 맞추기 위한 공백 출력
            for (int k = 7; k > i; k--) {
                Console.Write(" ");
            }

            // 삼각형의 숫자를 계산하고 출력하는 루프
            for (int j = 0; j < i; j++) {
                if (j == 0 || i == j) {
                    // 각 행의 양 끝은 1로 설정
                    a[i, j] = 1;
                } else {
                    // 위 행의 두 값을 더해 현재 값 계산
                    a[i, j] = a[i - 1, j] + a[i - 1, j - 1];
                }
                Console.Write(a[i, j] + " ");
            }
            Console.WriteLine();
        }
        Console.ReadLine();
    }
}

코드 동작 원리

이 코드는 세 개의 중첩 반복문으로 구성되어 있습니다.

  • 바깥쪽 루프(i): 삼각형의 행(row) 수를 결정합니다.
  • 첫 번째 안쪽 루프(k): 각 행 앞에 출력할 공백 개수를 조절해 삼각형의 대칭 모양을 만듭니다.
  • 두 번째 안쪽 루프(j): 각 행의 값을 채웁니다. 행의 시작(j == 0)이나 끝(i == j)인 경우 1을 저장하고, 그렇지 않으면 이전 행의 두 값 a[i-1, j]a[i-1, j-1]을 더합니다.

실행 결과

1
1 1
1 2 1
1 3 3 1

이처럼 2차원 배열과 중첩 반복문만 활용하면 별도의 라이브러리 없이도 손쉽게 삼각형 형태의 숫자 패턴을 출력할 수 있습니다. 응용하면 피라미드 모양, 다이아몬드 모양 등 다양한 패턴 출력 프로그램으로 확장할 수 있습니다.