재귀함수(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 |