본문 바로가기
코딩/백준

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

반응형

6571번: 피보나치 수의 개수 (acmicpc.net)

 

6571번: 피보나치 수의 개수

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 음이 아닌 두 정수 a와 b로 이루어져 있다. 입력의 마지막 줄에는 0이 두 개 주어진다. (a ≤ b ≤ 10100) 두 수 a와 b는 0으로

www.acmicpc.net

 


풀이

  • 구간 내에 존재하는 피보나치 수의 개수를 찾는 문제다.
  • 범위가 그리 크지 않아 전체 범위 안의 피보나치 수를 찾고 , 피보나치 수 배열을 통해 구간 내에 얼마나 존재하는지 확인하였다.

 

import sys
fibo = [1,1];t = 1
while fibo[-1] < 10**100:
    fibo.append(fibo[t]+fibo[t-1])
    t += 1

while True:
    a,b = map(int , sys.stdin.readline().split(" "))
    if a == 0 and b == 0:
        break
    aa,bb = 0,0
    for i in range(0,len(fibo)):
        if fibo[i] >= a and aa == 0:
            aa = i
        if fibo[i] > b and bb == 0:
            bb = i
    print(bb-aa)

 

 

 

 

반응형