본문 바로가기

python

재귀함수(Recursive function), factorial

 

재귀함수(Recursive function)

재귀함수는 함수가 자기 자신을 호출하게 하여 반복 처리하게 하는 것이다. for, while문에서 구현 가능한 로직을 재귀함수로 작성하는 것도 가능하다.

 

 

재귀함수의 기본적인 형태

def CountDown(n):
    if n == 0:
        print('완료')
    else:
        print(n, end = ' ')
        CountDown(n - 1) # 재귀 함수

CountDown(5)

5 4 3 2 1 완료

 

 

재귀함수 예시

return n + tot(n - 1) 에서 n값을 누적시키면서 자신을 재호출하는 재귀함수 구조를 이해할 수 있다.

print('1 ~ 10 까지의 합 구하기')
def tot(n):
    if n == 1:
        print('탈출')
        return True
    return n + tot(n - 1)

result = tot(10)
print('1 ~ 10 까지의 합은 ', result)

1 ~ 10 까지의 합 구하기
탈출
1 ~ 10 까지의 합은  55

 

 

재귀함수를 활용하여 factorial 구현한 예시

print('factorial : 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것 n!')
# 5! = 5 * 4 * 3 * 2 * 1
def factoFunc(a):
    if a == 1:return 1
    print(a)
    return a * factoFunc(a - 1)

result = factoFunc(5)
print('5! : ', result)

factorial : 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것 n!
5
4
3
2
5! :  120

'python' 카테고리의 다른 글

module - 사용자 작성 모듈  (0) 2022.10.06
module - 표준모듈  (0) 2022.10.06
함수 장식자 decorator  (0) 2022.10.06
일급객체와 일급함수, 람다함수  (0) 2022.10.06
클로저(closure)  (0) 2022.10.06