백준

[백준_1676번] 팩토리얼 0의 개수

빙수빈수 2021. 6. 29. 19:51

https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

[문제]

 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

 

[입력 조건]

 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

 

[코드]

import java.util.*;

public class BaekJoon_1676 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int count=0;
		
		/*
		 * n! 결과는 n이 5일때 부터 끝자리에 0이 생긴다.
		 * 5 단위로 0이 한 개씩 추가된다. 
		 * 이때 5의 개수는 누적합으로 구해줘야 한다.
		 */
		while(n>=5) {
			count+=n/5;
			n/=5;
		}
		System.out.println(count);
	}
}

 

[고찰]

 이번 문제는 n을 늘려가며 값을 적다보면 규칙이 보인다. n이 5일때 0이 처음 나타나며 이후 n이 5씩 늘어날 때 마다 0이 1개씩 추가된다. 단, 5의 개수는 누적합으로 구해줘야 한다. 이러한 규칙만 알아낸다면 쉽게 해결할 수 있는 문제였다. 

'백준' 카테고리의 다른 글

[백준_9375번] 패션왕 신해빈  (0) 2021.07.01
[백준_1912번] 연속합  (0) 2021.07.01
[백준_1010번] 다리 놓기  (0) 2021.06.29
[백준_11050번] 이항 계수1  (0) 2021.06.29
[백준_9251번] LCS  (0) 2021.06.29