백준-2749-피보나치 수 3
업데이트:
피보나치 수열을 구하는 여러 방법 중 하나
피사노 주기를 이용하는 방법을 기억하자
문제
피보나치 수 3 (https://www.acmicpc.net/problem/2749)
풀이
-
문제조건 해석
피보나치 수를 1,000,000으로 나눈 나머지를 구하는 문제이다.
-
알고리즘
-
파사노 주기를 이용한다.
피보나치 수를 나눈 수는 항상 주기를 가진다.
피보나치 수를 나눌 수를 $k$라고 할 때, $k=10^n$ 이면,
피사노 주기는 $15∗10^{n−1}$이다
-
1,000,000으로 나눈 나머지를 구하는 문제이므로
파사노 주기는 $15*10^{6-1}$ 이다.
-
-
코드
n = int(input())
def fibo3(n):
a, b = 0, 1
for _ in range(n):
a, b = b%1000000, (a+b)%1000000
return a
print(fibo3(n%(15*(10**5))))
댓글남기기