재귀 함수(Recursive Functions)

2025. 3. 26. 03:07Programming Languages/Python

재귀 함수(Recursive Functions)

함수가 자기 자신을 호출하는 방식으로 작동하는 함수입니다.

재귀 함수의 구조

  1. 기본 케이스(Base case): 재귀 호출을 중단하는 조건
  2. 재귀 케이스(Recursive case): 함수가 자기 자신을 호출하는 부분

팩토리얼 계산 예제

def 팩토리얼(n):
    """재귀 함수를 사용하여 팩토리얼을 계산"""
    # 기본 케이스
    if n == 0 or n == 1:
        return 1
    # 재귀 케이스
    else:
        return n * 팩토리얼(n - 1)

print(팩토리얼(5))  # 출력: 120 (5 * 4 * 3 * 2 * 1)

피보나치 수열 예제

def 피보나치(n):
    """재귀 함수를 사용하여 피보나치 수열의 n번째 항을 계산"""
    # 기본 케이스
    if n <= 1:
        return n
    # 재귀 케이스
    else:
        return 피보나치(n - 1) + 피보나치(n - 2)

# 피보나치 수열의 첫 10개 항 출력
for i in range(10):
    print(f"피보나치({i}) = {피보나치(i)}")

재귀 함수 사용 시 주의점

  • 종료 조건(기본 케이스)이 반드시 필요합니다.
  • 재귀 깊이가 너무 깊어지면 스택 오버플로우가 발생할 수 있습니다.
  • 파이썬의 기본 최대 재귀 깊이는 1000입니다.
import sys
print(f"최대 재귀 깊이: {sys.getrecursionlimit()}")

 

'Programming Languages > Python' 카테고리의 다른 글

함수 문서화(Documentation)  (0) 2025.03.26
내장 함수(Built-in Functions)  (0) 2025.03.26
람다 함수(Lambda Functions)  (0) 2025.03.26
함수 (Functions)  (2) 2025.03.26
collections 모듈의 특수 컬렉션  (0) 2025.03.26