Problem Solving/Java
백준 1676번 팩토리얼 0의 개수 문제 풀이 ( Java )
TakeKnowledge
2019. 10. 22. 17:11
반응형
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// reader writer 생성
int n = Integer.parseInt(br.readLine());
// n 팩토리얼에서 n
int answer = 0;
// 0의 갯수를 담을 변수
for( int i = 5; i<= n; i*=5) {
answer += n/i;
}
// 팩토리얼에서 0의 갯수를 찾으려면 5가 몇번 나오는지만 확인하면 된다
// n 팩토리얼 = 1부터 n까지 곱한 수이니
// 곱하는 수 중에서 5의 배수인 수의 갯수는 n을 5로 나누면 알 수 있다.
// 그런데 이 때 25 50 75 100 처럼 5가 2개씩 들어가는 경우가 있으니
// i가 n보다 작거나 같을 동안에는 i를 5의 배수만큼 증가시켜가면서
// n을 i로 나눈 값을 정답 변수에 담아주면 된다
// 출력
}
}
|
반응형