반응형
문제
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 |
댓글