#include <stdio.h>
int main()
{
long n;
long arr[100000] = {1, 2};
//先生成数列,注意这里存入的是取模后的结果,否则数据会越界
for (int i = 2; i < 100000; i++) 
{
arr[i] = (arr[i-1] * 2 + arr[i-2]) % 32767;
} 
scanf("%d", &n);//获取测试用例个数
for (int i = 0; i < n; i++) 
{
int num;
scanf("%d", &num);
printf("%ld\n", arr[num-1]);//循环打印每个测试用例的对应结果就行
} 
return 0;
}

当测试用例有多个的情况下,每次重新计算第k个数据,效率就要差很多了,毕竟每个数都要从头重新计算一遍。因此程序进入后首先可以先生成一个较大的数列,后边测试用例中需要第几个直接取出即可