백준(C언어) 풀이/수학
백준(C) 11050번 이항 계수 1 풀이
개발윗미
2021. 9. 23. 11:55
C로 구현한 11050번 이항 계수 1 문제 풀이입니다.
https://www.acmicpc.net/problem/11050
11050번: 이항 계수 1
첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))
www.acmicpc.net
#include <stdio.h>
int main() {
int n, k, a1 = 1, a2 = 1, b = 1;
scanf("%d %d", &n, &k);
for(int i=n-k; i>=2; i--) {
a1 *= i;
}
for(int i=k; i>=2; i--) {
a2 *= i;
}
for(int i=n; i>=2; i--) {
b *= i;
}
printf("%d\n", b/(a1*a2));
}
이 문제에서 요구하는 이항 계수를 해결하는 공식은 아래와 같다.

그러므로 첫번째 반복문에서는 (n-k)! 를 구하고, 두번째 반복문에서는 k! 를 구한다.
마찬가지로 분자에 해당되는 n! 의 결과는 세번째 반복문에서 구해 최종적으로 n! / (n - k)! k! 의 결과를 출력한다.