Problem Solving/BOJ

[백준 11050번] [경우의 수] 이항 계수 1

  • -
728x90
반응형

수학에서 학습한 공식을 활용하면 된다.

nCr = n! / (n-r)!*r! 을 약분하면 r의 갯수만큼 n부터 1씩 작아지는 수들의 곱에서 r!을 나눈것으로 쉽게 구할 수 있다.

 

해당하는 알고리즘으로 코드를 작성하면 다음과 같다.

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cstdlib>

using namespace std;

int main(void){
    int n, k;
    cin >> n >> k;

    int result_above = 1;

    for(int i = 0; i < k; i++){
        result_above *= (n - i);
    }

    int result_down = 1;

    for(int i = 1; i < k + 1; i ++){
        result_down *= i;
    }

    cout << result_above / result_down << "\n";

    return 0;
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.