#include <bits/stdc++.h> using namespace std; long long int a[1000005]; int n,k; int f(int x){ if(a[x]!=0) return a[x]; if(x==1) return 1; if(x==2) return 2; return a[x]=(2*(f(x-1)%32767+(f(x-2))%32767)%32767); } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>k; cout<<f(k)<<endl; } return 0; }
共 3 条回复
return a[x] = (2 * f(x - 1) + f(x - 2)) % 32767;
是 2*f(x-1) + f(x-2)
f 函数的括号打错了