아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

큰 피보나치 수의 나머지

면접 대비

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

요약
10^18 이하의 n이 주어지면 n번째 피보나치 수를 1,000,000,007로 나눈 나머지를 출력합니다.
난이도

보통10점 중 4점

유형
행렬, 분할 정복, 수학
정답자
아직 제출이 없습니다

문제

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 2번째부터는 바로 앞의 두 피보나치 수를 더한 값이다.

식으로 쓰면 Fn=Fn−1+Fn−2F_n = F_{n-1} + F_{n-2} (n≥2n \ge 2)이다.

nn이 17일 때까지 피보나치 수를 나열하면 다음과 같다.

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

nn이 주어지면 nn번째 피보나치 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 nn이 주어진다. nn은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 nn번째 피보나치 수를 1,000,000,007로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    1000
    
    예상 출력
    517691607
    
  2. 예제 2

    입력
    1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    17
    
    예상 출력
    1597