반응형
문제
https://www.acmicpc.net/problem/1676
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
코드
def factorial(n):
if n>0:
return n*factorial(n-1)
else: return 1
import sys
n=int(sys.stdin.readline())
cnt=0
res=factorial(n)
while True:
if res%10==0:
cnt+=1
res//=10
else: break
print(cnt)
문제 해결
팩토리얼 함수로 주어진 팩토리얼 값을 구한 후 10으로 나눠질 때마다 카운트를 세주면 된다
반응형
'Problem Solving > 백준' 카테고리의 다른 글
[백준] 1699번: 제곱수의 합 - [Python/파이썬] (0) | 2023.04.13 |
---|---|
[백준] 1697번: 숨바꼭질 - [Python/파이썬] (0) | 2023.04.13 |
[백준] 1655번 : 가운데를 말해요 - [Python/파이썬] (0) | 2023.04.13 |
[백준] 1654번: 랜선자르기 - [Python/파이썬] (0) | 2023.04.13 |
[백준] 1629번: 곱셈 - [Python/파이썬] (0) | 2023.04.13 |