[백준 / C언어] 11050번: 이항 계수 1

728x90
728x90

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

 

난이도: solved.ac 브론즈 1

 

 

이 문제는 다이나믹 프로그래밍을 이용해서도 풀 수 있지만, 그건 이다음에 업로드할 11051번 문제(실버 2)에서 서술하겠다

(수의 범위만 더 커지고 똑같은 문제임)

 

브론즈 문제 답게 쉬운 방식으로 풀어보자

 

조합 공식을 그대로 코드로 옮기는 것이다

 

[조합 공식]

 

맨 오른쪽에 있는 변은 조금 복잡해 보이지만 사실 간단하다

 

N부터 시작해 1씩 작은 수를 K개 만큼 곱한 것을 K!로 나눈 것이다

 

(예시)

아래는 이를 그대로 코드로 옮긴 것이다

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
	int N, K, com = 1, i;
	scanf("%d %d", &N, &K);
	for (i = 0; i < K; i++) {
		com *= N;
		N--;
	}
	for (i = K; i > 0; i--)
		com /= i;
	printf("%d", com);
	return 0;
}
반응형