Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 그리디알고리즘
- 알고리즘
- 소수
- Algorithm
- Markdown
- 그래프
- db
- 몽고DB
- 마크다운
- Python
- 그리디
- 기초
- 마크다운문법
- chatGPT
- 수열
- 알고리즘기초
- 코딩문제
- 데이터베이스
- 데이터
- 인프콘2024
- 수학
- 파이썬
- 탐색알고리즘
- database
- mongoDB
- 코딩테스트
- httpCode
- NoSQL
- 코테
- 백준
Archives
- Today
- Total
Dev_from the Bottom
#11. Algorithm07_python) 피보나치 수열의 합 본문
문제)
1+1+2+3+5+8+13+... 의 수열로 나열되는 "피보나치 수열"의 20번째 항까지의 합계
step1) 밑그림 : 피보나치 수열 출력
a1 = 1 # 첫번째 항
a2 = 1 # 두번째 항
n = 2 # 두번째 항 초과부터 로직하고자
# answer = a1 + a2
# 수열 출력
print("피보나치 수열 : ", a1, a2, '', end = '')
while(n < 20): # 20번째 항까지
temp = a1 + a2 # temp 임시 변수
print(temp,end=" ") # 수열 출력
# answer += temp
a1 = a2 # 한단계 이동
a2 = temp # 한단계 이동
n += 1
# 수열 자체를 한번에 표현하기가 어려워 나눠서 print
>>>
피보나치 수열 : 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
step2) 정답 출력
a1 = 1 # 첫번째 항
a2 = 1 # 두번째 항
n = 2 # 두번째 항 초과부터 로직하고자
answer = a1 + a2 # 합계
while(n < 20): # 20번째 항까지
temp = a1 + a2 # temp 임시 변수
answer += temp
a1 = a2 # 한단계 이동
a2 = temp # 한단계 이동
n += 1
print(f'피보나치 수열의 20번째 항까지의 합 : {answer}')
>>>
피보나치 수열의 20번째 항까지 합 : 17710
step3) 메서드화
def algo07():
a1 = 1
a2 = 1
n = 2
answer = a1 + a2
while(n < 20):
temp = a1 + a2
answer += temp
a1 = a2
a2 = temp
n += 1
return answer
print(f'피보나치 수열의 20번째 항까지의 합 : {algo07()}')
>>>
피보나치 수열의 20번째 항까지의 합 : 17710
step4) 메서드 확장 : n값 입력받아, 메서드의 파라미터로
n_input = int(input('n 입력 : '))
def algo07_extend(n_input):
a1 = 1
a2 = 1
n = 2
answer = a1 + a2
while(n < n_input):
temp = a1 + a2
answer += temp
a1 = a2
a2 = temp
n += 1
return answer
print(f'피보나치 수열의 {n_input}번째 항까지의 합 : {algo07_extend(n_input)}')
>>>
n 입력 : 20
피보나치 수열의 20번째 항까지의 합 : 17710
# 배운점
- while문 활용 : 상황에 따라 판단하여, for문 vs while문 선택
- temp 변수 활용
# 소회
- 구글링 해보니, 리스트를 활용한 피보나치 수열 구현도 있음
- 추후 스스로 고민
'Algorithm_study' 카테고리의 다른 글
#13. Algorithm09_python) 소수의 합 (0) | 2022.05.14 |
---|---|
#12. Algorithm08_python) 소수 판별 (0) | 2022.05.13 |
#10. Algorithm06_python) 수열 1!+2!+3!+4!+5!+...+10!의 합계 (0) | 2022.05.11 |
#9. Algorithm05_python) 1+2+4+7+11+16+22+...의 순서로 나열되는 수열의 20번째 항까지의 합계 (0) | 2022.05.10 |
#8. Algorithm04_python) -(1/2)+(2/3)-(3/4)+(4/5)-(5/6)+(6/7) ... -(99/100)의 합계 구하기 (0) | 2022.05.09 |
Comments