본문 바로가기
공부 정리/백준

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

by 경적필패. 2021. 10. 8.
반응형

문제

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

입력

첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

출력

첫째 줄에 구한 0의 개수를 출력한다.


테스트 케이스

 

입력 1

0

출력 1

0

 

입력 2

500

출력 2

124

 

입력 3

125

출력 3

31


접근

핵심은 규칙을 찾는 것입니다.

0~4까지는 뒤에 0의 개수가 1개

5~9까지는 뒤에 0의 갯수가 2개

10~14까지는 뒤에 0의 갯수가 3개

15~24까지는 뒤에 0의 갯수가 4개

 

그러나

25~30까지는 뒤에 0의 갯수가 6개가 됩니다.

 

5가 증가할 때마다 1씩 증가하고,

25가 증가할때마다 1씩 증가하고,

125가 증가할떄마다 1씩 증가합니다.

즉 5의 제곱수가 될 때마다 증가합니다.

 

따라서

N의 범위는 500까지 이므로

125까지만 더해주면 문제가 해결됩니다.


코드

import java.awt.desktop.SystemEventListener;
import java.io.*;
import java.math.*;
import java.util.*;

public class Main {

	/*
	 * 1676 problem
	*/
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int num = Integer.parseInt(br.readLine());
		
		int count = 0;
		
		
		count = num/5;
		count += num/25;
		count += num/125;
		
		bw.write(String.valueOf(count));
		bw.flush();
		br.close();
		bw.close();
	}
}

주의

팩토리얼 0은 1이다.

반응형

'공부 정리 > 백준' 카테고리의 다른 글

[백준] 자바 10815 숫자 카드  (0) 2021.10.12
[백준] 자바 1764 듣보잡  (0) 2021.10.11
[백준] 자바 2503 숫자 야구  (0) 2021.10.07
[백준] 자바 15829 Hashing  (0) 2021.10.06
[백준] 자바 2108 통계학  (0) 2021.10.05

댓글