题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2045
问题分析
递推问题 |
数组F[i]保存i个方格有多少种填涂方法。 n个方格可以由n-1个方格和n-2个方格填充得到。 比如,在一涂好的n-1个格子里最后再插入一个格子,就得到了n个格子了。 若前n-1不合法,而添加一个后变成合法,即前n-2个合法,而第n-1个与第1个相同。 |
#include<iostream>
using namespace std;
int main()
{
int i;
int n;
long long a[51]={0,3,6,6};
for (i = 4; i < 51; i++)
a[i] = a[i-1] + 2*a[i-2];
while (cin>>n)
cout<<a[n]<<endl;
return 0;
}