티스토리 뷰

Algorithm/BOJ

2749 피보나치 수 3

henry1214 2018. 3. 8. 17:01

https://www.acmicpc.net/problem/2749



피보나치 수를 M으로 나눈 나머지는 항상 주기를 갖는다. 이를 피사노 주기 (Pisano Period) 라고 한다. M=10^k (k>2) 일 때, 주기 P는 15*10^(k-1) 이다.



1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdio>
 
int mod=1000000,p=mod/10*15,f[1500000]={0,1};
 
int main()
{
    for(int i=2;i<p;i++) f[i]=(f[i-1]+f[i-2])%mod;
    long long n;
    scanf("%lld",&n);
    printf("%d",f[n%p]);
    return 0;
}
cs


'Algorithm > BOJ' 카테고리의 다른 글

1600 말이 되고픈 원숭이  (0) 2018.03.14
11444 피보나치 수 6  (0) 2018.03.08
9935 문자열 폭발  (0) 2018.03.08
1406 에디터  (0) 2018.03.08
1157 단어 공부  (0) 2018.03.07
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday