Coding Test/Baekjoon

[Python] 파이썬 백준(10870) 피보나치 수 5

파송송 2023. 4. 9. 17:39
728x90

https://www.acmicpc.net/problem/10870

 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net


나의 풀이

피보나치 수는 0과 1로 시작하고 아래의 수식을 따른다.

$$  F_{n} = F_{n-1} + F_{n-2} $$

n = 17일 때, 피보나치 수는 1597이다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

import sys

num = int(sys.stdin.readline())

def fibo(num):
    if num == 0:
        return 0
    if num == 1:
        return 1
    return fibo(num-2)+fibo(num-1)

print(fibo(num))


재귀용법을 쓰지 않고 구현

import sys
num = int(sys.stdin.readline())
num1 = 0
num2 = 1
if num == 0:
    print(num1)
elif num == 1:
    print(num2)
else:
    for i in range(num-1):
        num2, num1 = num1 + num2, num2

    print(num2)

728x90