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;
}
반응형