문제

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

 

 

조건 및 입출력

1. 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

2. 첫째 줄에 구한 0의 개수를 출력한다.

 

 

코드 (Python 3)
# 선언부
def fact(n): #팩토리얼 계산 함수
    result=1;
    for i in range(1,n+1):
        result*=i;
    return result;

# 입력부
n=int(input());

# 처리부
zero_count=list(str(fact(n)))
result=0;

for i in range(len(zero_count)-1,0,-1):
    if(zero_count[i]!='0'): #0이 아니면 루프 종료
        break;
    else: #0 이면 카운트+1
        result+=1;

# 출력부
print(result);

 

 

풀이 과정

우선 팩토리얼 사용자 정의 함수를 만든다.

 

그 후 n!을 하기 위한 값을 입력받는다.

n! 계산이 끝나면 반환받은 값을 str형태로 받아 리스트에 넣는다. (문자 하나하나 분리되므로)

 

그 후 문자열 길이만큼 루프를 돌린다.

0이 나오면 result 에 +1을 해주고, 그렇지 않으면(0이 아닌 수가 나오면) 루프를 종료시킨다.

 

 


 

코드가 이상하거나, 이해되지 않는 부분은 댓글 남겨주세요!

+ 더 좋은 풀이 방법이 있다면 알려주세요 :)

+ Recent posts