Study/Algorithms
백준 1676: 팩토리얼 0의 개수
LireEruel
2024. 6. 10. 09:07
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
아이디어
재귀함수로 팩토리얼을 계산하여 구현했다.
Java나 C++같은 경우에는 longlong으로 타입 선언을 한다던지.. 처리가 필요했겠지만 파이썬이라서 그냥 했다.
제출 코드
fact = [1, 1, 2]
def get_fact(value):
if len(fact) > value:
return fact[value]
else:
fact.append(get_fact(value - 1) * value)
return fact[value]
N = int(input())
n_fact = get_fact(N)
result = 0
while n_fact > 0:
if n_fact % 10 == 0:
result += 1
n_fact //= 10
else:
break
print(result)