https://www.acmicpc.net/problem/3474
문제 풀 때 포인트는
1. 0은 항상 2와 5가 추가될 때마다 생긴다는 점
2. 2보다 5의 개수가 항상 적다는 점
이라고 생각했다.
그래서 5의 배수, 5의 제곱수의 배수가 해당 범위 안에 몇개가 있는지 확인하는 코드를 작성하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
//입력되는 수, 0의 개수, 5의 제곱
int N, cnt, i;
for(int tc = 0; tc<T; tc++) {
cnt = 0;
i = 5;
N = Integer.parseInt(br.readLine());
while(N/i > 0) {
cnt += N/i;
i*=5;
}
System.out.println(cnt);
}
}
}
'알고리즘' 카테고리의 다른 글
[boj13335/Java] 트럭(Queue 사용법) (0) | 2023.07.24 |
---|---|
[boj2477/Java] 참외밭 (0) | 2023.07.20 |
[boj2607/Java] 비슷한 단어 (0) | 2023.07.17 |
[boj6884/Java] 소수 부분 수열 (0) | 2023.07.17 |
[boj11140/Java] LOL (0) | 2023.07.17 |