Java/백준

[1676] 팩토리얼 0의 개수

tmd1 2022. 7. 3. 17:44

문제:

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

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int FiveCount = 0;
		
		for(int i=1;i<=num;i++) { // 팩토리얼 숫자 하나하나 5의 개수 찾기
			double check = i;
			while(check !=0) {
				if(check%5 == 0) {
					FiveCount++;
				}
				check/=5; // 25 같은 경우 5가 2번 들어가므로 그러한 수 처리를 위해 사용
			}             // check가 int형이면 26도 5를 포함한다 판단하기에 check를 double형으로 지정
		}
		
		System.out.println(FiveCount);
	}

}

0 의 개수 = 2x5 의 개수 이기에 2와 5의 개수를 세면 0의 개수가 몇 개인지 알 수 있다.

2의 개수는 항상 5보다 많으므로 5의 개수만 계산하면 답이 나온다.