반응형
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=332&sca=99
#include <stdio.h>
int fibo[100000], cycle;
const int CYCLE = 7;
bool CheckCycle(int idx) {
for (int i = 0; i < CYCLE; i++) {
if (fibo[i] != fibo[idx - CYCLE + i]) return false;
}
return true;
}
void SetFivo() {
fibo[0] = 0, fibo[1] = fibo[2] = 1;
for (int i = 2; i <= CYCLE; i++) {
fibo[i] = (fibo[i - 1] + fibo[i - 2]) % 10000;
}
for (int i = CYCLE + 1;; i++) {
fibo[i] = (fibo[i - 1] + fibo[i - 2]) % 10000;
if (CheckCycle(i)) {
cycle = i - CYCLE;
break;
}
}
}
int main(void) {
int n;
SetFivo();
while (1) {
scanf("%d", &n);
if (n == -1) break;
printf("%d\n", fibo[n % cycle]);
}
return 0;
}
반응형
'프로그래밍 알고리즘' 카테고리의 다른 글
[정올 1078] 저글링 방사능 오염 (0) | 2022.12.14 |
---|---|
[정올 1060] 최소비용신장트리 (0) | 2022.12.14 |
[정올 1021] 장난감 조립 (0) | 2022.12.14 |
[정올 1006] 로봇 (0) | 2022.12.14 |
[정올 1002] 최대공약수, 최소공배수 (0) | 2022.12.14 |