728x90
이항 계수 문제입니다.
이항계수는 다음의 공식으로 나타낼 수 있습니다.
(N-0) * (N-1) * (N-2) * .... * (N-K+1)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
(K-0) * (K-1) * (K-2) * .... * (K-K+1)
예제 5 2의 경우
( 5 * 4 ) / ( 2 * 1 )로 나타낼 수 있습니다.
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{
int N, K;
int num = 1;
int div = 1;
cin >> N;
cin >> K;
for (int i = 0; i < K; ++i) {
num *= N - i;
div *= K - i;
}
cout << num / div << endl;
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 1676번 팩토리얼 0의 개수 (0) | 2019.09.04 |
---|---|
[C++] 백준 9375번 패션왕 신해빈 (0) | 2019.09.03 |
[C++] 백준 3036번 링 (0) | 2019.09.03 |
[C++] 백준 2981번 검문 (0) | 2019.09.03 |
[C++] 백준 2609번 최대공약수와 최소공배수 (0) | 2019.09.02 |