A38316. 数列用以下方式构造数列: 数列的第一个和第二个数都为 1 , 接下来每个数都等于前面 2 个数之和。给出一个正整数 a, 要求数列中第 a 个数对 1 000 取模的结果是多少。输入第 1 行是测试数据的组数 n, 后面跟着 n 行输入。 每组测试数据占 1 行, 包括一个正整数 a(1 <= a <=1000000)。输出n 行, 每行输出对应一个输入。 输出应是一个正整数, 为数列中第 a …
填空题
中等
知识点
题目描述
数列
用以下方式构造数列: 数列的第一个和第二个数都为 1 , 接下来每个数都等于前面 2 个数之和。
给出一个正整数 a, 要求数列中第 a 个数对 1 000 取模的结果是多少。
输入
第 1 行是测试数据的组数 n, 后面跟着 n 行输入。 每组测试数据占 1 行, 包括一个正整数 a(1 <= a <=1000000)。
输出
n 行, 每行输出对应一个输入。 输出应是一个正整数, 为数列中第 a 个数对 1 000 取模得到的结果。
样例输入
4
5
2
19
1
样例输出
5
1
181
1
参考答案
#include <iostream>
using namespace std;
int a[1000000];
void sl() {
a[0]=1;
a[1]=1;
for (int i=2;i<1000000;i++) {
a[i]=a[i-1]+a[i-2];
a[i]=a[i]%1000;
}
}
int main() {
sl();
int b;
cin>>b;
for (int i=0;i<b;i++) {
int c;
cin>>c;
cout<<a[c-1]<<endl;
}
return 0;
}
上一题
下一题