Notice
Tags
- programmers
- Linux
- Image_classification
- Unix_System
- 자격증
- C
- Univ._Study
- Java
- SingleProject
- pytorch
- 오블완
- Algorithm
- Python
- datastructure
- c++
- codingTest
- cloud_computing
- Android
- Artificial_Intelligence
- tensorflow
- study
- Kubernetes
- Personal_Study
- Baekjoon
- 티스토리챌린지
- Database_Design
- Operating_System
- 2023_1st_Semester
- 리눅스마스터2급
- app
코딩 기록 저장소
[백준/Java] 1676번: 팩토리얼 0의 개수 본문
문제 정보
제목 : 팩토리얼 0의 개수
번호 : 1676번
사용 언어 : Java
문제 링크
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
시간 제한 | 메모리 제한 |
2 초 | 128 MB |
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
입출력 예제

나의 풀이
소인수분해를 통해 N!의 2 * 5 개수를 구해야하는 문제입니다. 연속된 수를 곱하는 거면 2는 5의 개수보다 많을 것이므로 N에서 5를 나누면서 count변수를 합해주었습니다. 반복이 끝나면 count를 출력합니다.
코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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));
int N = Integer.parseInt(br.readLine());
int count = 0;
while(N>=5) {
count += N / 5;
N /=5;
}
bw.write(count+"\n");
bw.flush();
bw.close();
br.close();
}
}
'백준 > 기타' 카테고리의 다른 글
[백준/Java] 9095번: 1, 2, 3 더하기 (0) | 2023.05.30 |
---|---|
[백준/Java] 17219번: 비밀번호 찾기 (0) | 2023.05.25 |
[백준/Java] 2386번: 도비의 영어 공부 (2) | 2023.05.19 |
[백준/Java] 1003번: 피보나치 함수 (0) | 2023.05.18 |
[백준/Java] 1032번: 명령 프롬프트 (0) | 2023.05.12 |