이번에는 재귀 알고리즘에 대해서 알아보려고 합니다 :-)
이진트리 (binary trees)
자연수의 합 구하기
오른쪽 수식을 아래와 같이 구현 가능
def sum(n):
return n+sum(n-1)
자연수의 합 구하는 것을 재귀 알고리즘을 활용하여 구현
def sum(n):
if n <= 1:
return n
else:
return n + sum(n-1)
a = int(input("Number: "))
print(sum(a))
재귀 함수 호출 시 종결 조건 매우 중요!!!!!!
알고리즘의 종결조건에 반드시 필요하므로 주의 필요
# Recursive version
def sum(n):
if n <= 1:
return n
else:
return n + sum(n-1)
# Iterative version
def sum(n):
s = 0
while n >= 0:
s += n
n -= 1
return s
def n_factorial(n):
if n <= 1:
return 1
else:
return n*n_factorial(n-1)