【题目描述】
斐波那契数列是指这样的数列:数列的第一个和第二个数都为11,接下来每个数都等于前面22个数之和。给出一个正整数aa,要求斐波那契数列中第aa个数对10001000取模的结果是多少。
【输入】
第1行是测试数据的组数nn,后面跟着nn行输入。每组测试数据占11行,包括一个正整数aa(1≤a≤10000001≤a≤1000000)。
【输出】
nn行,每行输出对应一个输入。输出应是一个正整数,为斐波那契数列中第aa个数对10001000取模得到的结果。
【输入样例】
4
5
2
19
1
【输出样例】
5
1
181
1
源代码:
#include <bits/stdc++.h> using namespace std; int n; int a[1000000+10],b[1000000+10]; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } b[1]=1; for(int i=2;i<=1000000;i++) { b[i]=(b[i-1]+b[i-2])%1000; } for(int i=1;i<=n;i++) { cout<<b[a[i]]<<endl; } }