재귀 함수 2부
Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 61번째.
재귀 함수는 일반적으로 두 부분으로 구성됩니다:
- 기저 사례: 재귀가 언제 멈춰야 하는지 정의합니다.
- 재귀 단계: 더 작은 입력으로 함수 자체를 호출합니다.
예시: 재귀를 사용해 팩토리얼 계산하기:
def factorial(n):
if n == 1: # 기저 사례
return 1
return n * factorial(n - 1) # 재귀 호출
print(factorial(5)) # 출력: 120여기서 함수는 1에 도달할 때까지 n - 1을 사용해 자기 자신을 계속 호출하며, 그 지점에서 재귀가 멈춥니다.
예시: 문자열 뒤집기:
def recursive_reverse(s):
if len(s) <= 1: # 기저 사례: 빈 문자열 또는 한 글자 문자열
return s
else:
return recursive_reverse(s[1:]) + s[0] # 재귀 단계
text = "hello"
result = recursive_reverse(text)
print(result)
# 출력: olleh이 예제에서 recursive_reverse 함수는 문자열이 비어 있거나 문자 하나만 남을 때까지 나머지 문자열(s[1:])을 인수로 자신을 호출합니다. 각 호출은 첫 번째 문자를 재귀 호출의 결과에 덧붙여 문자열을 효과적으로 뒤집습니다.
챌린지
쉬움양의 정수 n을 인수로 받아 n번째 피보나치 수를 반환하는 fibonacci라는 재귀 함수를 작성하세요. 피보나치 수열은 다음과 같이 정의됩니다.
fibonacci(1) = 0fibonacci(2) = 1fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)이며,n > 2입니다.
입력 예시:
n = 6출력 예시:
5직접 해보기
def fibonacci(n):
# 여기에 코드를 작성하세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러