티스토리 뷰
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 |