본문 바로가기
코딩/백준

알고리즘 - Python / 백준 - 4150번 : 피보나치 수

반응형

4150번: 피보나치 수 (acmicpc.net)

 

4150번: 피보나치 수

피보나치 수열은 다음과 같이 그 전 두 항의 합으로 계산되는 수열이다. 첫 두 항은 1로 정의된다. f(1) = 1, f(2) = 1, f(n > 2) = f(n − 1) + f(n − 2) 정수를 입력받아, 그에 해당하는 피보나치 수를 출력

www.acmicpc.net

 


풀이

  • 1000자 이내의 피보나치 수를 구하는 문제다.
  • 단순하게 배열을 통해 S[i] = S[i-1] + S[i-2]로 피보나치 수를 구하였다.
  • 구할 때마다 1000자가 넘는지 혹은 이미 구할 숫자까지 왔는지 체크해서 break 하고 답을 출력하였다.

 

a = int(input())
s=[0,1,1]
idx = 3
while True:
    p = s[idx-1]+s[idx-2]
    if len(str(p)) > 1000 or idx > a:
        break
    else:
        s.append(p)
        idx += 1

print(s[a])

 

 

 

 

 

반응형