#재귀함수를 이용한 피보나치
def fibo1(n):
if n < 3:
return 1
return fibo1(n-1) + fibo1(n-2)
#for문을 이용한 피보나치
def fibo2(n):
if n < 3 :
return 1
else:
a, b = 1, 1
for i in range(1, n):
a,b = b, a+b
return a
#메모이제이션을 이용한 피보나치
def fibo3(n):
fibList = [1, 1]
if n < 3:
return 1
else:
for i in range(2,n):
fibList.append(fibList[i-1] + fibList[i-2])
return fibList
a = int(input())
print("#재귀함수 이용")
print("n = {0} \nvalue = {1}".format(a,fibo1(a)))
print()
print("#for문 이용")
print("n = {0} \nvalue = {1}".format(a,fibo2(a)))
print()
print("#메모이제이션 이용(결과값을 리스트에 저장해 반환)")
print("n = {0} \nvalue = {1}".format(a,fibo3(a)))
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 리스트에 해당 문자열 중복 확인 (0) | 2020.12.17 |
---|---|
[Python] factorial(팩토리얼) 구현하기 (0) | 2020.12.17 |
random 함수를 이용한 로또번호 생성기 (0) | 2019.09.30 |
파이썬 오라클 연동하기 (0) | 2019.09.30 |
파이썬 입력과 출력 (0) | 2019.09.16 |