http://acm.hdu.edu.cn/showproblem.php?pid=2569
一个简单的递推问题。分两种情况递推,再相加;第一种是前两个为不同a[ ],第二个为前两个相同 b[ ].
#include<iostream>
using namespace std;
int main()
{
int a[40],b[40];
a[0] = b[0] = 0;
a[1] = 3; b[1] = 0;
a[2] = 6; b[2] = 3;
for(int i = 3; i < 40; i++)
{
a[i] = a[i-1] + 2*b[i-1];
b[i] = a[i-1] + b[i-1];
}
int t,n;
cin>>t;
while(t--)
{
cin>>n;
cout<<(a[n]+b[n])<<endl;
}
return 0;
}