문제 출처
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
* 체크 리스트
시간
- 즉시 작성 가능
- 1시간 이내
- 1시간 이상
- 하루 이상
이해도
- 이해 완료
- 복습 필요
- 부분 이해
- 이해 불가
체감 난이도
- 최상
- 상
- 중
- 하
- 최하
문제
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으로 나눈 몫(//=)을 리턴한다.
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[파이썬] 백준 알고리즘 3052 : 나머지 (Python) (1) | 2022.10.18 |
---|---|
[파이썬] 백준 11399 : ATM (python) (1) | 2022.10.08 |
[파이썬] 백준 11726 : 2xn 타일링 (python) (0) | 2022.10.06 |
[파이썬] 백준 1003 : 피보나치 함수 (1) | 2022.10.04 |
[파이썬] 백준 2630 : 색종이 만들기 (python) (2) | 2022.10.03 |
댓글