找当前项和前几项的关系...思维要严谨~~把所有情况考虑进去...具体看程序.~
Program:
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int t,n,s[40],i,j,T;
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
s[1]=s[0]=1;
for (i=2;i<=36;i++)
{
s[i]=s[i-1]+4*s[i-2];
for (j=3;j<=i;j++)
{
if (j%2) s[i]+=2*s[i-j];
else s[i]+=3*s[i-j];
}
}
scanf("%d",&T);
for (t=1;t<=T;t++)
{
scanf("%d",&n);
if (!n) printf("0 0\n"); else
printf("%d %d\n",t,s[n]);
}
return 0;
}