문제설명
숫자 N을 입력받고 N!에서 맨뒤에서부터 어느자리까지 0이 있는지 출력하는 문제입니다.
작동 순서
1. N을 입력받습니다.
2. 1부터 N까지에서 5의 개수를 구합니다.
3. 맨 뒷자리의 0의 개수는 2*5의 개수와 동일한데 2의 개수는 무조건 5보다 많으므로 구할 필요가 없으므로 5의 개수만 출력해줍니다.
소스코드
public class 백준_1676번_팩토리얼0의개수 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int N=Integer.parseInt(br.readLine());
int five=0;
for(int i=1;i<=N;i++){
int num=i;
while(num%5==0){
num/=5;
five++;
}
}
System.out.print(five);
}
}
후기
그렇게 어렵지는 않은 문제였습니다. 0이 생성되는 조건만 알게되면 굉장히 쉽게 풀수 있는 문제입니다. 다른 분들의 백준 풀이는 저보다 훨씬더 효율적으로 푸신 분들이 많이 보여는데 저도 많이 배우고 싶습니다.