반응형

재귀함수란 ?

 

- 함수 안에서 자신을 다시 호출하는 방법입니다.

- 함수 내에서 자신을 다시 호출한 후 함수가 끝나는 이후에는 종료 조건을 붙여주어야 무한루프에 빠지지 않습니다.

 

 

def CountDown(n):
    if n == 0:
        print('완료')
        
    else:
        print(n, end=' ')
        CountDown(n - 1)
 
CountDown(5)


출력 결과

5 4 3 2 1 완료

 

CountDown 함수에 5가 들어간후 if문을 실행합니다. n == 5이기 때문에 else 문을 실행하고,

그 다음 n - 1 을 통해 n는 4가 되고 다시 if문을 거쳐 else 문을 실행하게 됩니다.

이 과정을 반복하다가 n이 0이 될 경우 완료를 출력하고 빠져나오게 됩니다.

 

예제 2)

def fact(a):
    if a== 1: return 1
    print(a)
    return a * fact(a-1)

result2 = fact(5)
print('5! : ' + str(result2))


출력 결과
5! : 120

 

예제 3)

def tot(n):
    if n == 1:
        print('탈출')
        return 1
    return n + tot(n-1)
result = tot(10)
print('합은' + str(result))


출력 결과

탈출
합은 55

 

위 예제는 if문을 주었지만 이번 예제는 루프 과정을 반복하다가 n이 1을 만나면 탈출하는 예제입니다.

 

이번 예제는 위와 동일한 원리입니다.

반응형

'python' 카테고리의 다른 글

python - 상속  (0) 2020.05.10
python - 클래스  (0) 2020.05.10
python - 함수 장식자 ( Decorator )  (0) 2020.05.10
python - 파이썬은 1급 함수인가 ?  (0) 2020.05.08
python - 가변인수  (0) 2020.05.08

+ Recent posts