본문 바로가기

프로그래밍_백준/Java

Java) 1676번 팩토리얼 0의 개수

728x90
반응형

이 문제의 같은 경우 팩토리얼의 결과에서 뒤에서부터 0의 갯수를 세는 문제이다.

뒤에서부터 0을 찾고 0이 아닌 다른 숫자를 만나면 탐색을 멈춘다.

 

하지만 이 문제는 팩토리얼을 사용할 필요가 없다. 그 이유는 이 문제에서 구하고자 하는 본질은 (2*5=10)의 갯수이다.

값이 작은 2는 어떤 팩토리얼에서도 포함되기 때문에 5의 갯수만 신경쓰면 된다.

 

따라서 코드는 아래와 같다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int count=0;

        while(num>=5){
            count+=num/5;
            num/=5;
        }
        System.out.println(count);
        sc.close();
    }
}
728x90
반응형