백준
백준 1676 팩토리얼 0의 개수(Java)
Park DJ
2023. 1. 20. 18:46
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
해석 및 팁
이 문제를 풀 때 그냥 팩토리얼을 구해서 뒤집어서 0의 개수를 세는 것보다는 n의 범위가 500 이기 때문에 규칙을 이용하면 쉽게 풀 수 있습니다. 10 = 2 * 5 일 때 5의 개수에 따라 0의 값이 변화하므로 주어진 n값을 5로 나누었을 때 누적합을 구해주면 됩니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long result = 1;
int count = 0;
while(n >= 5) {
count += n / 5;
n /= 5;
}
System.out.println(count);
}
}