재귀 함수(Recursive Functions)
2025. 3. 26. 03:07ㆍProgramming Languages/Python
재귀 함수(Recursive Functions)
함수가 자기 자신을 호출하는 방식으로 작동하는 함수입니다.
재귀 함수의 구조
- 기본 케이스(Base case): 재귀 호출을 중단하는 조건
- 재귀 케이스(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 |