프로도 수열

시간 제한1초메모리 제한128 MB

요약
2^31 미만의 n이 여러 번 주어질 때, Fro_n = Fro_{n-1} + Fro_{n-2} - Fro_{n-3}으로 정의된 수열의 n번째 항을 각 줄에 출력한다.
난이도

보통10점 중 4점

유형
수학, 동적 계획법, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

피보나치 수열은 1202년 레오나르도 피사노(피보나치)가 정의한 유명한 정수 수열로, 다음과 같이 정의된다.

  • Fib1=1Fib_1 = 1
  • Fib2=1Fib_2 = 1
  • Fib3=2Fib_3 = 2
  • Fib4=3Fib_4 = 3
  • Fib5=5Fib_5 = 5
  • …\dots
  • 모든 n>2n > 2에 대해 Fibn=Fibn−1+Fibn−2Fib_n = Fib_{n-1} + Fib_{n-2}

잘 알려지지 않았지만, 골목쟁이집의 프로도 역시 프로도 수열이라는 정수 수열을 정의했다. 프로도 수열은 다음과 같이 정의된다.

  • Fro1=1Fro_1 = 1
  • Fro2=1Fro_2 = 1
  • Fro3=2Fro_3 = 2
  • Fro4=2Fro_4 = 2
  • Fro5=3Fro_5 = 3
  • …\dots
  • 모든 n>3n > 3에 대해 Fron=Fron−1+Fron−2−Fron−3Fro_n = Fro_{n-1} + Fro_{n-2} - Fro_{n-3}

정수 nn이 주어질 때 FronFro_n을 구하는 프로그램을 작성하시오.

입력

입력은 한 줄에 하나씩 주어지는 정수들의 수열이다. 입력의 끝은 정수 00으로 표시된다. 마지막 00을 제외한 모든 정수는 양수이며 2312^{31}보다 작다.

출력

각 양의 정수 nn에 대해 FronFro_n을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    2
    4
    5
    6
    0
    
    예상 출력
    1
    2
    3
    3
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    1