题目
Pell数列是这样定义的:a1=1,a2=2,…,an=2an-1+an-2
现在求出Pell数列的第k项模上32767的余数是多少。
输入
第一行为正整数T,表示存在T组测试数据。
每组测试数据输入一行包含一个正整数k(1<=k<=1000000)。
2
1
8
输出
对于每组测试数据输出一行表示答案。
1
408
收获
在做这种输入n然后接着输入几行的题 一输入一输出也就OK了
题中涉及到的数比较大 就定义全局变量
为什么在开始就取模因为要保证a[i]都小于32767
代码
#include<iostream>
using namespace std;
#define K 1000000
int a[K] = { 0 }; //定义为局部变量则无法输入
int main()
{
a[1] = 1;
a[2] = 2;
int t;
for (int i = 3; i < K; i++)
{
a[i] = ( a[i - 1]*2 + a[i - 2])%32767;
}
cin >> t;
int k;
for (int i = 0; i < t; i++)
{
cin >> k;
cout << a[k] << endl;
}
}