본문 바로가기
코드업(codeup)/C

[코드업(codeup)/C]코드업(codeup) 3701 : 파스칼 삼각형 C언어

by starfish22 2021. 12. 26.
728x90

▶문제 : 파스칼 삼각형 (codeup.kr)

 

파스칼 삼각형

배열의 값이 커지므로 배열은 long long 으로 선언해야 합니다. nCr의 점화식의 원리도 이 삼각형의 원리와 똑같습니다. nCr = n-1Cr + n-1Cr-1

codeup.kr

 

▶코드 작성

#include <stdio.h>

int main()
{
    unsigned long long arr[51][51];
    int n;

    scanf("%d", &n);

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            if (j == 1 || j == i)//양쪽 끝은 항상 1
            {
                arr[i][j] = 1;
                printf("1 ");
            }
            else
            {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];//자신의 위 숫자와 그 왼쪽 숫자의 합
                printf("%llu ", arr[i][j]);
            }
        }
        printf("\n");
    }

    return 0;
}

 

▶해석

이중 반복문으로 값을 구했고, j==1이거나 j==i일 때가 양쪽 끝 값이므로 항상 1이다. 나머지는 삼각형을 보면 구하려는 수는 그 위 숫자와 그 왼쪽 숫자를 합한 값이 나오므로 계산식을 하였다.

728x90

댓글