study/python

[재귀함수]

숲로 2023. 2. 8. 15:00

재귀함수?

메소드 혹은 함수의 내부에서 자기 자신의 메소드 혹은 함수를 다시 호출하는 함수

 

코드의 간결화 및 변수의 최소화를 위해 사용

조건문을 활용하여 종료조건을 삽입해야 함

 

def recur(index, value):
	if index == len(data):
		result.add(value)
	else:
		recur(index +1, value+data[index])
	recur(index+1, value)

data = [3, 5, 8]

result = set()
recur(0,0)
print(result)

 

 

 

* 재귀함수 활용

1) 팩토리얼

n! = n * (n-1) * ... 2 * 1

def factorial(n):
	if n ==1:
         reutrn 1
   	else:
    	return n * factorial(n-1)

2) 피보나치 수열

1 1 2 3 5 8 13 21

def fibonacci(n):
	if n ==0 or n==1:
        return 1
    else:
        return fibonacci(n-1) + fobonacci(n-2)

 

재귀함수 깊이

파이썬의 경우 기본값 1000