728x90
반응형
문제 설명
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
문제 링크
https://www.acmicpc.net/problem/1676
입력 예시
출력 예시
프로그램 코드
N = int(input()) #입력 받기
fac = 1
for i in range(2, N + 1): #팩토리얼 구하기
fac *= i
str_fac = str(fac) #팩토리얼을 문자열로 바꾸기
cnt = 0
for i in range(len(str_fac)): #뒤에서부터 0 개수 세기
if str_fac[-1 - i] != '0': #문자가 0이 아니면 반복 중단
break
cnt += 1
print(cnt)
프로그램 코드 설명
이 문제는 입력받은 N의 팩토리얼을 계산한 후
팩토리얼 값을 1의 자리부터 큰 자리까지 세면서 0의 개수를 측정하면 된다.
따라서 팩토리얼을 계산한 후 이를 문자열로 바꿔서 0이 아닌 값이 나오면 반복을 중단하면 된다.
문자열로 안바꾸고 정수로 계산해도 된다.
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬] 백준 1920번 문제 풀이 수찾기 (이분 탐색, 이진 탐색) (0) | 2024.02.05 |
---|---|
[파이썬] 백준 1874번 문제 풀이 스택 수열 (1) | 2024.02.05 |
파이썬 리스트 최대 최소 값 찾기 min max 함수 python list min max (1) | 2024.02.04 |
[파이썬] 백준 1436번 문제 풀이 영화감독 숌 (0) | 2024.02.04 |
[파이썬] 백준 1259번 팰린드롬수 문제풀이 (1) | 2024.02.04 |