재귀함수에 관한 영상(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'가 발생한다.

 

 

 

 

'Reviews' 카테고리의 다른 글

객체지향 디자인 패턴 1  (0) 2021.04.29
DTO와 VO  (0) 2021.04.29
Scope  (0) 2021.04.18
REST API  (0) 2021.04.18
포인터  (0) 2021.04.18

+ Recent posts