본문 바로가기

PS/BOJ

[C++] BOJ (백준) 11050 : 이항 계수 1

문제

11050번: 이항 계수 1 (acmicpc.net)

 

11050번: 이항 계수 1

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

코드
#include <iostream>

using namespace std;

int factorial(int num) {
  if (num == 0) return 1;

  return num * factorial(num - 1);
}

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);

  int n, k;
  cin >> n >> k;
  cout << factorial(n) / factorial(k) / factorial(n - k);
  return 0;
}
설명

 

Binomial coefficient - Wikipedia

이항계수(nCk)는 n! / k! / (n-k)! 으로 나타낼 수 있다.
이 문제에서는 n의 최댓값이 10에 불과하기 때문에 DP를 사용하지 않아도 빠르게 해결할 수 있다.