안녕하세요. 춘삼이의 블로그입니다.
코드카데미 파이썬(Codecademy Python) 강좌 해설 4번째 시간입니다. 이번 문제는 반복문 챕터의 [연습이 최고를 만든다]에 4번째 문제 [계승 또는 팩토리얼(factorial)] 입니다.
정수 x를 입력값으로 하는 함수 factorial을 만들고 정수 x의 팩토리얼을 구하여 결과값을 반환하도록 구현하면 됩니다. 팩토리얼은 1부터 시작해서 정수 x까지의 모든 정수를 곱한 값입니다.
일단 완성된 코드는 아래와 같구요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def factorial(x): # x를 입력값으로 갖는 factorial 함수 생성 if x >= 1: # x가 1이상일 경우에 명령을 실행 total = x # 결과값 total에 초기값 x 할당 y = x - 1 # 순차적으로 감소하는 값인 y에는 x-1 할당 for i in range(x-1): # 0부터 x-1의 횟수만큼 반복 total = total * y # total값과 y를 곱하여 total에 할당 y -= 1 # y의 값을 감소 return total # 연산이 끝난 결과값 total을 반납 else: return x x=raw_input("Enter Number : ") # 인자 x의 값을 사용자로부터 입력 print factorial(int(x)) # factorial을 호출하고 결과값을 출력 | cs |
- 12열 이하로는 없어도 문제는 패스입니다.
- 12열 : raw_input은 콘솔상에 질의하고자 하는 문자열을 출력하고 사용자 입력값을 반환하는 함수입니다.
- 2열 : n이 1 이상일 경우에만 처리하기 위하여 n >= 1 인 조건문을 설정합니다.
- 3열 : 곱셈연산이기 때문에 결과값 total을 x값으로 초기화합니다.
- 4열 : 순차적으로 감소하는 값을 담을 변수 y에는 x-1을 할당합니다.
- 5열 : 0부터 x-1의 횟수만큼까지 반복합니다.
- 6열 : total값과 y의 값을 곱하여 total에 할당합니다.
- 7열 : 연산이 끝난 y값을 1만큼 감소시킵니다.
- 8열 : for 반복문 종료 후 연산이 종료된 total값을 반환합니다.
지난번 문제 보다 이번 문제가 더 쉬운 듯 합니다.
덧셈은 보통 total값을 0으로 초기화한 후 작은 값부터 더하는 연산으로 진행이 되는 경우가 많은데요. 이건 곱셈 연산이기 때문에 그냥 최대값을 할당하고 곱하는 값이 감소하는 식으로 연산을 진행했습니다.
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
코드카데미 파이썬(Codecademy Python) 강좌 - 문자열 뒤집기(reverse) (0) | 2015.11.20 |
---|---|
코드카데미 파이썬(Codecademy Python) 강좌 - 소수인지 확인하기(is_prime) (0) | 2015.11.16 |
코드카데미 파이썬(Codecademy Python) 강좌 - 숫자들의 합 구하기 (0) | 2015.11.14 |
코드카데미 파이썬(Codecademy Python) 강좌 - 정수인지 확인하기 (1) | 2015.11.12 |
코드카데미 파이썬(Codecademy Python) 강좌 - 짝수인지 확인하기 (0) | 2015.11.11 |