백준에서 팩토리얼 문제를 봤다.
문제) N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
끝 자리순서부터 0이 나오다가 다른 숫자가 나올때 까지의 0의 개수 구하는 문제인데, 규칙을 살펴보면 0! -> 5! -> 10! 와 같이 팩토리얼이 5씩 늘어 날 때 마다 '0'의 개수가 늘어난다는걸 알 수 있다.
즉, 아래와 같이 구현하면 간단하게 답을 구할 수 있다.
// cnt : 구하고자 하는 0의 개수
int cnt = 0;
while(N >= 5) {
cnt += N / 5;
N = N / 5;
}