[Python] 피보나치 수열 (Fibonacci numbers)

python-fibonacci-numbers

해당 포스트에서는 300보다 작은 모든 피보나치 숫자들을 찾는 방법을 소개합니다.
참고로, 피보나치 수열(Fibonacci numbers)의 이론적인 설명은 아래 사이트에서 확인하실 수 있습니다.

[실습] 300보다 작은 모든 피보나치 숫자들을 찾아 나열하는 Python 코드를 찾으시오.

아래는 Python으로 300보다 작은 모든 피보나치 숫자들을 찾아 나열하는 코드입니다.

Python 코드

# 초기 두 개의 피보나치 수를 리스트에 저장합니다.
fib = [0, 1]  

# 마지막 항이 300보다 작을 때까지 반복합니다.
while fib[-1] < 300:  
    # 새로운 피보나치 수를 리스트에 추가합니다.
    fib.append(fib[-1] + fib[-2])

# 리스트의 마지막 항은 300을 초과하므로 제외합니다.
print(fib[:-1])  
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]

코드 설명

먼저, 초기 피보나치 수열의 첫 두 항인 0과 1을 리스트 fib에 저장합니다. 그리고 while 루프를 사용하여, 마지막 항(fib[-1])이 300보다 작은 경우에만 반복하도록 fib[-1] < 300 조건을 사용하여 while 루프의 조건식을 만듭니다.

while 루프 내부에서는 새로운 피보나치 수를 계산하여 리스트 fib에 추가합니다. 새로운 피보나치 수는 항상 리스트의 마지막 두 원소의 합으로 계산되기 때문에, fib[-1] + fib[-2]를 사용하여 새로운 피보나치 수를 계산하고, 이를 리스트 fibappend() 메서드를 사용하여 추가하면 됩니다.

while 루프가 종료되면, 리스트 fib에는 300보다 작은 모든 피보나치 수열이 저장되어 있습니다.

참고
마지막 항은 300을 초과하므로, 이를 제외하기 위해 리스트 슬라이싱을 사용하여 fib[:-1]을 출력합니다. 이렇게 하면 300보다 작은 모든 피보나치 숫자들이 출력됩니다.

관련 링크

[1] [R] 피보나치 수열 (Fibonacci numbers)
[2] [위키백과] 피보나치 수