본문 바로가기
프로그래밍/알고리즘

[파이썬] 백준 1676: 팩토리얼 0의 개수(python)

by 철인애슬론 2022. 10. 1.

문제 출처

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

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

* 체크 리스트


시간

  1. 즉시 작성 가능
  2. 1시간 이내
  3. 1시간 이상
  4. 하루 이상

이해도

  1. 이해 완료
  2. 복습 필요
  3. 부분 이해
  4. 이해 불가

체감 난이도

  1. 최상
  2. 최하

문제

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

입력

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

출력

첫째 줄에 구한 0의 개수를 출력한다.


전체 코드

N = int(input())
count1 = 0
def factorial(N):
    if N == 0:
        return 1
    else:
        return N*factorial(N-1)
res = factorial(N)
for _ in range(len(str(res))):
    if res % 10 == 0:
        count1 += 1
        res //= 10
print(count1)

가장 먼저 팩토리얼을 구하는 함수를 생성했다. (factorial(N))

그 뒤 팩토리얼의 길이(len(str(res)))만큼 반복문을 실행하며, 팩토리얼 값이 10으로 나눠 떨어지면 카운트 횟수를 늘렸다.

다음 10으로 나눈 몫(//=)을 리턴한다.

반응형

댓글