백준 1676 - 팩토리얼 0의 개수

Updated:

Java

1676 번 - 팩토리얼 0의 개수

문제

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

접근 방법

코드

import java.util.*;
import java.io.*;

public class Main {
	static int n, result;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	n = stoi(br.readLine());
    	
    	int count = 0;
    	int num = 1;
    	for(int i = 2; i <= n; i++) {
    		num *= i;
    		// 제일 뒷 자리가 0일 때
    		if(num % 10 == 0) {
    			while(num % 10 == 0) {
    				count++;
        			num /= 10;
    			}
    		}
    		else {
    			num %= 1000;	// N의 수가 늘어나면, modulo 수도 늘려야 한다.
    		}
    	}    	
    	System.out.println(count);

    	br.close();
	}

	
	static int stoi(String str) {
    	return Integer.parseInt(str);
    }
}

총평

후기

개선할 점

없습니다.