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

이세령·2023년 5월 24일
0

알고리즘

목록 보기
12/43

문제

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

풀이과정

  • 문제 설명이 너무 간단해서 무슨 뜻인지 잘 모르겠다.
  • 팩토리얼 함수를 만들어서 해석해보자
    import sys
    n = int(sys.stdin.readline())
    
    def factorial(n):
        if (n > 1):
            return n * factorial(n - 1)
        else:
            return 1
    
    print(factorial(n))
    10을 넣으면 3628800이 출력된다.

→ 8을 만났으니 0은 2개가 있었다.

뒤집어서 0의 갯수를 세어주었다.

import sys
n = int(sys.stdin.readline())

def factorial(n):
    if (n > 1):
        return n * factorial(n - 1)
    else:
        return 1

num = str(factorial(n))
cnt = 0
if len(num) == 1:  # 길이가 1일 경우
    print(0)
else:
    for i in num[::-1]:  # 뒤집어주기
        if i != '0':  # 0 이 아니라면
            break
        else:
            cnt += 1
    print(cnt)
profile
https://github.com/Hediar?tab=repositories

0개의 댓글