본문 바로가기
프로그래밍/Python

[파이썬] 백준 1676번 문제 풀이 팩토리얼 0의 개수

by 아임코딩 2024. 2. 4.
728x90
반응형

문제 설명

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

 

 

문제 링크

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

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

입력 예시

출력 예시

 

프로그램 코드

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
반응형