알고리즘/백준 알고리즘 풀이

[Silver 5] 1010번 다리 놓기

dragontiger 2021. 9. 15. 01:50

백준 1010번 주유소 문제 풀이 코드입니다~

#include <stdio.h>

int main()
{
    int cnt = 0;

    scanf("%d", &cnt);
    for (int i = 0; i < cnt; i++)
    {
        int n = 0, r = 0;
        unsigned long long n_fac = 1;

        scanf("%d %d", &r, &n);

        if (r < n - r)
        {
            long long r_fac = 1;
            for (int i = n; i > 0; i--)
            {

                if (i > n - r)
                    n_fac *= i;
                if (i < r + 1)
                    r_fac *= i;
            }
            printf("%d\n", n_fac / r_fac);
        }
        else
        {
            long long n_r_fac = 1;
            for (int i = n; i > 0; i--)
            {

                if (i > r)
                    n_fac *= i;
                if (i < n - r + 1)
                    n_r_fac *= i;
            }
            printf("%d\n", n_fac / n_r_fac);
        }
    }
}

궁금한건 댓글 남겨주세요~