문제 링크: https://www.acmicpc.net/problem/11050


n과 k가 주어질 때, nCk를 구하면 되는 문제이다.


팩토리얼 계산을 통해서 구현하면 된다.


팩토리얼을 통한 구현은, n이 15만 되더라도 int의 범위 근처이고, 21까지만 되도 long long의 범위 근처이기 때문에, 이 문제처럼 n이 10으로 작을 경우에만 사용한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std;
typedef long long ll;
int main(void) {
    ll n, k;
    cin >> n >> k;
    
    ll son = 1, mom = 1;
    for (int i = 0; i < k; i++
        son = son * (n - i);
 
    for (int i = 0; i < k; i++
        mom = mom * (k - i);
 
    cout << son / mom;
    return 0;
}
cs


+ Recent posts