def 로 함수를 선언할때 return으로 또다시 자신을 불러오는 함수가 있다
바로 "재귀함수" 이다
# 팩토리얼
def fac(n): # n의 팩토리얼
if n == 1:
return (1) # n == 1 이라면 return 1
else :
return (n * fac(n-1)) # n * fac(n-1) = 4 * fac(3)
#
print(fac(4))
# n * fac(n-1) = fac(4)를 fac(1) 로 만드는 과정
# 피보나치 수열
def pb(n): #. 피보나치 수열의 n 번째 항
if n == 1:
return 1 # n 이 1 이면 return 1
elif n == 2:
return 1 # n 이 2 이면 return 1
else :
return (pb(n - 1) + pb(n - 2))
# 전 항과 전전 항의 합
print(pb(20))
# n 이 1일때와 2 일때는 n 이 홀수인지 짝수인지 구별하는 것이다