본문 바로가기

algorithm/백준알고리즘

[백준알고리즘] 11050번: 이항계수 1 -C

728x90

[백준알고리즘] 11050번: 이항계수 1 -C

https://www.acmicpc.net/problem/11050

 

11050번: 이항 계수 1

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

 

이항 계수의 문지입니다.

 

이 문제는 범위가 짧기 때문에 이항 계수의 식을 그대로 넣어서 풀어주도록 합니다.

 

nCk = n! / (k! * (n-k)!)

 

이때 저는 범위만큼 팩토리얼을 배열에 저장을 한 후 가져다가 쓰는 방식을 사용했습니다.

 

#include <stdio.h>

int factorial_arr[11];

void factorial(void);

int main(void){
    int N, K;

    scanf("%d", &N);
    scanf("%d", &K);

    if(K < 0 || K > N){
        printf("0\n");
        return 0;
    }

    factorial();

    printf("%d\n", factorial_arr[N] / factorial_arr[K] / factorial_arr[N - K]);
    return 0;
}

void factorial(void){
    int i;

    factorial_arr[0] = 1;

    for(i = 1; i <= 10; i++){
        factorial_arr[i] = factorial_arr[i - 1] * i;
    }

    return;
}

 

 

 

잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다

728x90