반응형
재귀함수는 함수에서 자신을 다시 호출하면서 반복하는 함수를 말합니다.
재귀함수를 사용하지 않고 팩토리얼을 구현해보고,
재귀함수를 사용해서 팩토리얼을 구현해보도록 합니다.
재귀함수의 일반적인 형태는 아래와 같습니다.
종료 조건을 충분히 작은 조건을 넣어서 종료가 되도록 구현해한다. (종료 조건이 없으면 무한루프)
재귀함수 일반적인 형태
def func(입력 값):
if 입력 값이 충분히 작으면 : # 종료 조건
return 결과값
func(입력 값 보다 하나 작은 값)
return 결과값
1. 재귀함수 없이 팩토리얼 구현
팩토리얼은 5! 이라고 하면 1x2x3x4x5 = 120 입니다.
소스 코드
# 1.재귀함수 사용 없는 팩토리얼
def fact(n):
f = 1
for i in range(1,n+1):
f=f*i
return f
print(fact(5))
결과
120
2. 재귀함수를 사용해서 팩토리얼 구현
일단 함수의 최소값일때 return 하는 부분을 먼저 만들어 줘야합니다. (종료값 없으면 무한루프)
1! = 1
2! = 2x1!
3! = 3x2!
4! = 4x3!
n! = nxn!
이런 순서로 이루어져 있다. 그래서 fact3 함수를 통해 값을 구하도록 재귀함수를 구현한다.
소스 코드
# 2.재귀함수 사용 팩토리얼
def fact2(n):
if n ==1:
return 1
result = n * fact2(n-1)
return result
print(fact2(5))
결과
120
반응형
'프로그래밍언어 > 자료구조 및 알고리즘' 카테고리의 다른 글
[Python] 재귀 함수를 이용해 알고리즘 문제 풀기 - 프로그래머스 문제 (0) | 2021.09.10 |
---|---|
[Python] 병합 정렬 쉽게 이해하기 (0) | 2021.09.09 |