재귀함수에 관한 영상(www.youtube.com/watch?v=aPYE0anPZqI) 내용에 대한 개념 정리
- 재귀함수( Recursive function )란?
: 자신을 정의할 때, 자기=aPYE0anPZqI) 내용에 대한 개념 정리
- 재귀함수( Recursive function )란?
: 자신을 정의할 때, 자기 자신을 재참조하는 함수
재귀함수는 반복문을 통해서도 나타낼 수 있다. 재귀함수를 사용하면 반복문보다
코드의 양을 줄일 수 있다.
다음 파이썬 예제를 통해 알아볼 수 있다.
"1+2+3... +(n-1)+n" 즉, 1부터 입력값 n까지를 모두 더하는 예제이다.
1) 반복문
def num(n) :
sum = 0
for i in range(1, n+1) :
sum += i
return sum
print(num(10))
>>> 55
2) 재귀함수
def num(n) :
if n == 1
return 1
return n + num(n-1)
print(num(10))
>> 55
: 여기서 재귀함수가 연산되는 방식은, return값에 함수 자기 자신이 오면서
n = 10, num(9)를 return
n = 9, num(8)를 return
n = 8, num(7)를 return
.
.
.
n = 1, num(0)를 return
n값이 1이 되는 조건절에서 return을 받기 전까지
sum(n-1)씩 보류되다가 조건문에서 n == 1을 얻었을 때,
작은 수부터 순차적으로 모든 함수가 연산된다.
만약, 위의 조건절이 없다면 n 값이 0, 음의 정수로 계속 내려가는 무한루프가
발생하기 때문에
'RecursionError : maximum recursion depth exceeded'가 발생한다.