[Python] 재귀 호출

정수민·2023년 2월 16일
0

python

목록 보기
5/7
post-thumbnail

재귀 호출(Recursion)

  • 동일한 작동을 무한적으로 반복하는 알고리즘
  • 자신을 다시 호출하는 것

1. 재귀 호출의 작동

입력

def openBox():
    print('종이상자를 엽니다.')
    openBox()   # 자기자신을 다시 호출

openBox()

💻 출력
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
...
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
...

openbox를 사용하여 끝없이 호출

2.수를 제한하여 재귀 호출

입력

count = 10

def openBox():
    global count
    print('종이상자를 엽니다.')
    count -= 1
    if count == 0:
        print('반지를 넣고 반환합니다*****')
        return
        
    openBox()   # 자기자신을 다시 호출
    print('종이 상자를 닫습니다.')

openBox()

💻 출력
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
종이상자를 엽니다.
반지를 넣고 반환합니다*
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.
종이 상자를 닫습니다.

count를 사용하여 횟수를 제한

3. 재귀호출 하지 않고 반복문으로 계산

입력

sumValue = 0

for n in range(10, 0, -1):
    sumValue += n

print('10+9+8+...+1 = ', sumValue)

💻 출력
10+9+8+...+1 = 55

profile
just do it

0개의 댓글