구현, 수학
[백준] 2004. 조합 0의 개수 풀이
hch06
2025. 2. 5. 21:35
https://www.acmicpc.net/problem/2004
조합은 위와 같은 수식으로 나타낼 수 있다.
이때 뒷자리 0의 개수는 팩토리얼 0의 개수때와 같이 결과를 소인수분해 하였을 때 2와 5의 개수를 확인하면 된다.
따라서 약분 후에 2나 5의 개수를 확인한 후 더 작은 값을 출력하여서 문제를 해결했다.
C
더보기
#include <stdio.h>
int count(int e, int a){
long sum = 0;
for(long i = a; i <= e; i *= a){
sum += e / i;
}
return sum;
}
int main(){
int n, m; scanf("%d %d", &n, &m);
int res1 = count(n, 2) - count(m, 2) - count(n-m, 2);
int res2 = count(n, 5) - count(m, 5) - count(n-m,5);
printf("%d\n", (res1 > res2) ? res2 : res1);
}