要点:
1.尾递归可以循环迭代代替
2.取余计算可以先处理,好像数学上证明过了
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--){
int a1=1,a2=2,a3; //这里定义保证每一次循环初始化
int k;
cin>>k;
if(k==1)a3=1;
if(k==2)a3=2;
for(int i=1;i<=k-2;i++){
a3=2*a2+a1;
if(a3>32767)a3%=32767;
a1=a2;
a2=a3;
}
cout<<a3<<endl;
}
return 0;
}