内存限制:128 MB时间限制:1.000 S
评测方式:文本比较命题人:外部导入
提交:94解决:36
题目描述
Pell 数列的定义如下所示:
- a1 = 1, a2 = 2 。
- 当 n > 3 时,an = 2an - 1 + an - 2。
求 Pell 数列的第 k 项模 32767 的值。
输入格式
第 1 行一个整数 n ,表示测试数据得组数。
接下来 n 行,每行一个整数 k 。
输出格式
对于每一组数据,输出一个正整数,表示答案。
数据范围
1 < n < 20, 1 < k < 10^6。
样例输入 复制
2
1
8
样例输出 复制
1
408
- include <iostream>
#include <cstdio>
using namespace std;
const int N = 1e6;
long long a[N];
const int MOD = 32767;
void pell(){
a[0] = 1;
a[1] = 2;
for(int i=2; i<N; i++){
a[i] = (2 * a[i-1] + a[i-2]) % MOD;
}
}
int main(void)
{
pell();
int n, i;
cin >> n;
while(n--){
cin >> i;
cout << a[i-1] << endl;
}
return 0;
}