16.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이 들어있는 factoriali를 곱한 뒤 다시 factorial에 넣어주면 됩니다.

참고로 팩토리얼은 import math로 수학 모듈을 가져온 뒤 math.factorial(n)으로 구할 수 있습니다. 또한, 반복문을 사용하지 않고 재귀호출로도 구할 수 있습니다. 자세한 내용은 '32.2 재귀호출로 팩토리얼 구하기'를 참조하세요.