题目:走方格
题意:在一无限大的二维平面中,我们做如下假设:每次只能移动一格;不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向 上走,但是不可以向下走);的格子立即塌陷无法再走第二次;求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案
思路:当m=1时,n=3;
当m=2时,n=7;
当m=3,n=2*7+3
感想:找到规律
代码:
#include<iostream>
using namespace std;
int main()
{
int a[21];
a[0]=0;
a[1]=3;
a[2]=7;
for(int i=3;i<21;i++)
a[i]=2*a[i-1]+a[i-2];
int n,m;
cin>>n;
while(n--)
{
cin>>m;
cout<<a[m]<<endl;
}
return 0;
}