실버 5문제이다
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
첫째 줄에 구한 0의 개수를 출력한다.
입력박은 N을 5로 나누어 0의 자리가 나올 때까지 계속 반복해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class backjoon{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int count = 0;
while(num >= 5) {
count += num / 5;
num /= 5;
}
System.out.println(count);
}
}
처음엔 문제가 이해되지 않아 1시간 넘게 고민을 한 결과 0이 될 때 2랑 5가 나온다. 그 결과
5로 나눌때마다 카운터를 증가하면 쉽게 문제를 해결할 수 있다.