굉장히 간단해 보였지만
어떻게 풀어야 간단할지 잘 몰라서 다른 블로그들을 참고했다
뒤에 0이 생기는 경우는 10이 곱해져야 한다
=> 2 * 5 의 개수이다
숫자가 커질수록 2의 제곱은 충분히 많으므로
5의 갯수에 기준을 두고 문제를 풀면 되겠다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int cnt = 0;
while(num >= 5){
cnt += num / 5;
num /= 5;
}
System.out.println(cnt);
만약 어떤 원리인지 잘 모르겠다면
https://st-lab.tistory.com/165
[백준] 1676번 : 팩토리얼 0의 개수 - JAVA [자바]
www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 정말 정말 쉬운 문제다. 알고리
st-lab.tistory.com
위 블로그가 잘 정리해놔서 참고해보면 될 것 같다
'알고리즘' 카테고리의 다른 글
<백준> 1764번 파이썬 알고리즘 (0) | 2021.10.30 |
---|---|
<백준> 1697번 파이썬 알고리즘 (0) | 2021.10.29 |
<백준> 1620번 자바 알고리즘 (0) | 2021.10.12 |
<백준> 11404번 자바 알고리즘 (0) | 2021.10.11 |
<백준> 1389번 자바 알고리즘[플로이드 와샬] (0) | 2021.10.09 |