반응형
1. for문
def fib(n):
list = []
for i in range(0, n):
if i < 2:
list.append(1)
else:
list.append(list[i-1] + list[i-2])
return list[n-1]
n = int(input())
print(fib(n))
- 값을 저장 하기 위한 빈 리스트 생성
- for문을 통해 배열의 인덱스는 0 부터 시작이므로 0 ~ n 까지 실행
- n의 값이 3보다 작으면 값이 1이므로 if < 2는 1를 추가
- 바로 앞의 두 피보나치의 수의 합을 구하여 되므로 else 구문
- 0부터 시작했으므로 list[n-1]
2. 재귀함수
def fib2(n):
if n < 3:
return 1
else:
return fib2(n-1) + fib2(n-2)
n = int(input())
print(fib2(n))
- 끝나는 구문을 반드시 지정 if n < 3 (n이 3보다 작으면 값이 1)
반응형
'Python_Intermediate > Algorithmus' 카테고리의 다른 글
[알고리즘]선택 정렬(Select Sort) (0) | 2020.02.23 |
---|---|
[알고리즘]버블 정렬(Buble Sort) (0) | 2020.02.23 |
Python - 최대 k-구간 합 알고리즘 (0) | 2019.06.07 |
Palindrome Discrimination(회문 판별) (0) | 2019.05.02 |
Python - 사용자에게 입력 받아 * 산 모양 알고리즘 (0) | 2019.03.20 |