[ 문제 ]
피보나치 수열의 1번 항과 2번 항은 각각 1입니다. 3번 항부터는 바로 앞 두 항의 합으로 계산됩니다. 예를 들어서 3번 항은 1번 항(1)과 2번 항(1)을 더한 2이며, 4번 항은 2번 항(1)과 3번 항(2)을 더한 3입니다.
피보나치 수열의 첫 50개 항을 차례대로 출력하는 프로그램을 작성해 보세요.
[ 내가 작성한 코드 ]
a = 1
b = 1
n = 0
while n < 25:
print(a)
a += b
print(b)
b += a
n += 1
[ 해설 코드 ]
previous = 0
current = 1
i = 1
while i <= 50:
print(current)
temp = previous # previous를 임시 보관소 temp에 저장
previous = current
current = current + temp # temp에는 기존 previous 값이 저장돼 있음
i += 1
[ 보충 설명 ]
- 피보나치 수열의 항들을 순서대로 출력하기 위해서는 늘 마지막 두 항을 변수에 보관해야 한다.
- previous = current를 하면, 기존의 previous 값을 잃어버리므로 임시 보관소 역할을 할 변수(temp)를 만들어야 한다.
- previous, current = current, current + previous
→ temp를 사용하지 않고 깔끔하게 쓰는 방법이지만, 대부분 프로그래밍 언어에서 제공되지 않는 문법이다.
'✏️ STUDY > 📍 coding' 카테고리의 다른 글
[Python 기초] 4. 리스트 (0) | 2022.11.22 |
---|---|
[Python 기초] 문제 3. 거스름돈 계산기 (0) | 2022.11.21 |
[Python 기초] 문제 1. 이상한 수학 문제 (0) | 2022.11.13 |
[Python 기초] 3. 제어문 (0) | 2022.11.12 |
[Python 기초] 2. 추상화 (0) | 2022.11.11 |