재귀함수 (recursive functions)
하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 것이다.
재귀함수로 작성된 코드는 반복문을 이용하여 동일한 기능을 구현할 수 있다.
재귀함수가 반복문보다 유리한 경우도 있지만, 불리한 경우도 있다.
알고리즘의 종결조건이 반드시 필요하다. ( 최대 재귀 깊이를 초과하면 RecursionError가 발생한다.)
코드구현
# 반복문으로 구현한 팩토리얼
def factorial_iterative(x):
result = 1
for i in range(1, x+1):
result *= x
return result
# 재귀함수로 구현한 팩토리얼
def factorial_iterative(x):
if x <= 1:
return 1
return n * factorial_iterative(x-1)