南阳理工 oj
题目地址http://acm.nyist.net/JudgeOnline/problem.php?pid=698
涛哥代码~
循环节15000
#include<cstdio>
int ans[100000];
int main(void) {
int t;
ans[1] = 2;
ans[2] = 3;
ans[3] = 5;
ans[4] = 8;
for (int i=5; i<=20000; ++i) {
ans[i] = (ans[i-2] + ans[i-1]) % 10000;
// if (ans[i] == 8&&ans[i-1]==5&&ans[i-2]==3&&ans[i-3]==2) {
// printf("%d\n", i);
// printf("%d\n", ans[i-3]);
// printf("%d\n", ans[i-2]);
// printf("%d\n", ans[i-1]);
// printf("%d\n", ans[i]);
// }
}
scanf("%d", &t);
while (t--) {
int n;
scanf("%d", &n);
n %= 1500;
if (n==0) {
n = 1500;
}
printf("%d\n", ans[n]);
}
return 0;
}