11050번 : 이항 계수 1
자연수 N과 정수 K가 주어졌을 때 이항 계수
를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K ≤ N)
출력
를 출력한다.
생각해 볼 점
이항 계수는 두가지 방법으로 구할 수 있습니다.
1. 조합 n C k로 구하기
2. 파스칼의 삼각형으로 구하기
자세한 내용은
파스칼의 삼각형 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)
링크에서 확인해봅시다.
코드
#include <iostream>
using namespace std;
int main()
{
int N, K;
cin >> N >> K;
int u = 1; //분자
int d = 1; //분모
for(int i = 0; i < K; i++) //n C k
{
u *= N-i;
d *= i+1;
}
cout << u/d;
return 0;
}
그 외
입력 제한이 작아 int의 범위를 넘어가지는 않았지만, 항상 숫자가 얼마나 커질 수 있을 지 생각해둡시다.
'공부 및 정리 > 백준 코드' 카테고리의 다른 글
[C++]백준 - 1010번 문제 (0) | 2021.06.04 |
---|---|
[C++]백준 - 11051번 문제 (0) | 2021.06.04 |
[C++]백준 - 18870번 문제 (0) | 2021.06.03 |
[C++]백준 - 3036번 문제 (0) | 2021.06.02 |
[C++]백준 - 2981번 문제 (0) | 2021.06.02 |