PS (C, C++)

[백준/C & C++] 11050 이항 계수 1

최연재 2022. 10. 5. 14:46

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

 

11050번: 이항 계수 1

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

코드 (C)

#include <stdio.h>

int factorial(int n)
{
	int result = 1;
	for (int i = 2; i <= n; i++) result *= i;
	return result;
}

int main()
{
	int n, m;
	scanf("%d %d", &n, &m);
	printf("%d", factorial(n) / factorial(m)/ factorial(n-m));
	return 0;
}

코드 (C++)

#include <iostream>
using namespace std;

int factorial(int n)
{
	int result = 1;
	for (int i = n; i > 0; i--) result *= i;
	return result;
}

int main()
{
	int n, m;
	cin >> n >> m;
	cout << factorial(n) / factorial(m) / factorial(n - m);
	return 0;
}

코드설명 

이항계수는 조합의 공식으로 구할 수 있다. 따라서 factorial이라는 함수를 선언해서 인수로 들어온 n에 대해서 n!을 반환한다. 입력으로 n과 m을 입력받은 뒤n! / ((n-m)!*(m!))을 출력한다. 

느낀 점

조합의 공식을 이용해서 바로 풀었다. 

'PS (C, C++)' 카테고리의 다른 글

[백준/C & C++] 1302 베스트셀러  (0) 2022.11.05
[백준/C & C++] 1181 단어 정렬  (0) 2022.10.30
[백준/C & C++] 2914 저작권  (2) 2022.10.04
[백준/C & C++] 2798 블랙잭  (2) 2022.10.04
[백준/C & C++] 5354 J박스  (0) 2022.10.04