재귀는 수학이나 컴퓨터 과학 등에서 자신을 정의할 때 자신을 재참조하는 방법을 뜻한다. 주로 이 방법은 함수에 적용한 재귀 함수(Recursion Function)의 형태로 많이 사용된다.
점화식을 세웠을 때, 인자만 바뀌고 같은 로직을 사용해야하는 함수가 필요한 경우 반복문보다 재귀 함수가 적합하다. 변수 사용을 줄여주는 장점도 있기 때문에 사이드 이펙트를 최소화할 수 있고 코드의 가독성도 향상된다.
주어진 수의 Factorial 값을 구해 아래와 같이 출력하시오. 주어지는 수는 1 이상 20 이하의 수이다.
def factorial(num):
if num == 0:
return 1
else:
return num * factorial(num - 1)
T = int(input())
for i in range(T):
num = int(input())
answer = factorial(num)
print('#', i + 1, " ", num, "! = ", answer)