https://www.acmicpc.net/problem/11050

조합의 경우의 수를 구하는 코드를 만들어주면 된다. n을 k번 1씩 줄이면서 곱해준 값과 k를 k번 1씩 줄이면서 곱해준 값을 나눠주면 된다.

 

정답코드

#include <iostream>

using namespace std;

int main()
{
	int n, k;

	cin >> n >> k;

	if (k > n - k) {
		k = n - k;  // nCk == nC(n-k), 계산량 줄이기 위해 k를 더 작은 값으로 설정
	}

	int a = 1, b = 1;

	for (int i = 0; i < k; i++)
	{
		a *= (n - i);
		b *= (k - i);
	}

	cout << a / b << endl;
}

+ Recent posts