https://www.acmicpc.net/problem/11050
11050번: 이항 계수 1
첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))
www.acmicpc.net
파스칼의 삼각형 법칙에 따라 이항계수 nCk는 k가 0 혹은 n일 때 1, 그 외의 경우에는 (n - 1)C(k - 1) + (n - 1)Ck이다.
#include <cstdio>
#define MAX_N 10
int main() {
// N, K: 이항계수 상수, ans[n][k]: 이항계수 nCk
int N, K, ans[MAX_N + 1][MAX_N + 1] = {{ 0, }};
// 문제의 조건을 입력받은 뒤 파스칼의 삼각형을 이용해 이항 계수를 계산
scanf("%d %d", &N, &K);
for (int n = 1; n <= N; n++) {
ans[n][0] = ans[n][n] = 1;
for (int k = 1; k < n; k++)
ans[n][k] = ans[n - 1][k] + ans[n - 1][k - 1];
}
// 이항계수를 출력
printf("%d\n", ans[N][K]);
return 0;
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
11052번: 카드 구매하기 (0) | 2022.01.04 |
---|---|
11051번: 이항 계수 2 (0) | 2022.01.04 |
11047번: 동전 0 (0) | 2022.01.04 |
11022번: A+B - 8 (0) | 2022.01.03 |
11021번: A+B - 7 (0) | 2022.01.03 |