#include <iostream>
int main()
{
int N = 0;
int K = 0;
std::cin >> N >> K;
int iNumber = N - K + 1;
int iSum = 1;
for (;iNumber <= N; ++iNumber)
{
iSum *= iNumber;
}
for (; K > 0; --K)
{
iSum /= K;
}
std::cout << iSum;
return 0;
}
이항 계수는 이항 정리로 전개했을 때 각 항의 계수이며, 주어진 크기의 (순서 없는) 조합의 가짓수이다.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
이렇게 커간다.
(N K) = (N N-K)
(N K) + (N K+1) = (N+1 K+1)
등이 있다.
'오늘의 알고리즘' 카테고리의 다른 글
[C++] 백준 1780 종이의 개수 (0) | 2022.09.01 |
---|---|
[C++] 백준 1107 리모컨 (0) | 2022.08.25 |
[C++] 백준 2609 최대공약수와 최소공배수 (유클리스 호제법) (0) | 2022.08.05 |
[C++] 백준 2749 피보나치 2 (0) | 2022.07.22 |
[C++] 백준 9471 피사노주기 (0) | 2022.07.22 |