본문 바로가기
알고리즘/백준

[백준 1676] 팩토리얼 0의 개수 - 자바

by binghe819 2020. 4. 30.

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

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net


1. 풀이

뒤에 0이 되려면 10을 곱해주면 된다. 즉 5 x 2인데, 2의 배수는 5의 배수보다 무조건 많거나 같으므로 5의 배수만을 찾아주면 된다.

 

주의 할 점은 500 이하의 5의 배수중 25와 125는 5가 2번씩 들어가므로, 각각 2번, 3번씩 더해줘야한다.

 


2. 코드

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        // 어떤 수의 마지막의 0이 오려면 10의 배수를 곱하는 것 밖에 없다.
        // 그러면 5의 개수를 구하면 뒤에 몇개의 0이 오는지 알 수 있다.
        System.out.println((n/5) + (n/25) + (n/125));

        sc.close();
    }
}

댓글