728x90
https://www.acmicpc.net/problem/11050
11050번: 이항 계수 1
첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))
www.acmicpc.net
✨ 소스 코드
#include<iostream>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
int N, K;
cin >> N >> K;
int c = 1;
int s = 1;
for (int i = N; i > K; i--) {
c *= i;
}
for (int i = 1; i <= N - K; i++) {
s *= i;
}
cout << c/s;
return 0;
}
🙏 문제 풀이
- 이항계수 nCk 일 때, n!/k!(n-k)! 로 계산이 된다
- 어차피 n!/k! 에서 값이 나눠져서 사라져버리기때문에 c를 n부터 k 전까지만 곱해준다
- k!(n-k)! 에서 k!은 n!에 의해 나눠져서 사라져버리고, 남은건 (n-k)! 이기때문에 s를 1부터 n-k까지만 곱해준다
- c와 s를 나누면 끝
⭐ 문제 풀이 결과

728x90