15.7 연습문제: 팩토리얼 구하기
다음 소스 코드를 완성하여 n의 팩토리얼(factorial)이 출력되게 만드세요. 팩토리얼은 1부터 n까지 숫자를 차례대로 곱한 값입니다.
practice_for_range.py
n = 5 factorial = 1 print(factorial)
실행 결과
120
정답
for i in range(1, n + 1): factorial *= i
해설
팩토리얼을 구하려면 먼저 for i range(1, n + 1):과 같이 반복문을 만들어서 1부터 n까지 자연수를 구합니다. 여기서 range로 생성한 마지막 숫자는 끝나는 숫자보다 1이 더 작으므로 n + 1처럼 1을 더해줘서 1부터 n까지 나오도록 만듭니다. 그리고 연속된 숫자를 차례대로 곱하려면 factorial *= i처럼 1이 들어있는 factorial와 i를 곱한 뒤 다시 factorial에 넣어주면 됩니다.
참고로 팩토리얼은 import math로 수학 모듈을 가져온 뒤 math.factorial(n)으로 구할 수 있습니다. 또한, 반복문을 사용하지 않고 재귀호출로도 구할 수 있습니다. 자세한 내용은 '32.2 재귀호출로 팩토리얼 구하기'를 참조하세요.