- 문제
- 풀이
#include <iostream>
using namespace std;
int factorial(int t)
{
// 초기값이 0이면 곱한 결과가 0이 되므로 반드시 1로 초기화 해주어야 한다.
int result = 1;
// 해당 값부터 하나씩 줄여가며 곱해간다.
for (int i = t; i > 0; i--)
{
result *= i;
}
return result;
}
int main()
{
int n, k;
cin >> n >> k;
int result = factorial(n) / (factorial(k) * factorial(n - k));
cout << result;
}
- 메모
이항 계수를 구하기 위해 팩토리얼을 사용했다.
팩토리얼 공식은 factorial(n) / (factorial(k) * factorial(n - k))이고, 아래의 함수로 구현할 수 있다.
int factorial(int t)
{
// 초기값이 0이면 곱한 결과가 0이 되므로 반드시 1로 초기화 해주어야 한다.
int result = 1;
// 해당 값부터 하나씩 줄여가며 곱해간다.
for (int i = t; i > 0; i--)
{
result *= i;
}
return result;
}
'코딩테스트' 카테고리의 다른 글
[백준/2588번/C++] 곱셈 (0) | 2024.07.21 |
---|---|
☆ [백준/10847번/C++] 큐 (0) | 2024.07.16 |
[백준/2798번/C++] 블랙잭 (0) | 2024.07.08 |
[백준/1181번/C++] 단어 정렬 (0) | 2024.07.03 |
[백준/10814번/C++] 나이순 정렬 (0) | 2024.06.30 |