题目地址
解题思路
由于不能往下走,所以前三步的情况如下图
从图中第三步可以看出 Dn = Dn-2 * 3 + (Dn-1 - Dn-2) * 2 ,也就是三个可以走三步,四个可以走两步。
AC代码
#include <iostream>
using namespace std;
long long sum[30];
void init()
{
sum[0] = 1;
sum[1] = 3;
for (int i=2; i<=20; i++)
{
sum[i] = sum[i-2] * 3 + (sum[i-1] - sum[i-2]) * 2;
}
}
int main()
{
init();
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
cout << sum[n] << endl;
}
return 0;
}