728x90
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
풀이
N부터 1까지 반복문으로 탐색하면서 2와 5의 개수를 세었다.
2와 5의 개수 중 적은 만큼 0의 개수가 있다는 것을 이용하였다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int counter2 = 0;
int counter5 = 0;
for(int i = N; i > 0; i--) {
N = i;
while(N % 2 == 0 || N % 5 == 0) {
if(N % 2 == 0) {
counter2++;
N /= 2;
} else if(N % 5 == 0) {
counter5++;
N /= 5;
}
}
}
System.out.println(Math.min(counter2, counter5));
}
}
틀린 부분이 있다면 정정해주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!
728x90
'[JAVA]백준 알고리즘 > 단계별 - 정수론 및 조합론' 카테고리의 다른 글
[JAVA]백준 알고리즘 2004번 : 조합 0의 개수 (0) | 2022.12.26 |
---|---|
[JAVA]백준 알고리즘 9375번 : 패션왕 신해빈 (2) | 2022.12.26 |
[JAVA]백준 알고리즘 1010번 : 다리 놓기 (0) | 2022.12.26 |
[JAVA]백준 알고리즘 11051번 : 이항 계수 2 (3) | 2022.12.25 |
[JAVA]백준 알고리즘 11050번 : 이항 계수 1 (0) | 2022.12.23 |