문제 링크: 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 |
'알고리즘 문제 풀이 > 백준 온라인 저지' 카테고리의 다른 글
백준 15686번: 치킨 배달 (C++) (0) | 2019.08.05 |
---|---|
백준 17141번: 연구소 2 (C++) (0) | 2019.08.05 |
백준 17142번: 연구소 3 (C++) (0) | 2019.08.05 |
백준 17143번: 낚시왕 (C++) (0) | 2019.08.04 |
백준 16235번: 나무 재테크 (C++) (0) | 2019.07.30 |