#include <stdio.h>
int main()
{
int n;
long long int a[1000];
a[1]=3;
a[2]=8;
while(scanf("%d",&n)!=EOF)
{
for(int i=3;i<=n;i++)
{
a[i]=2*(a[i-1]+a[i-2]);
}
printf("%lld\n",a[n]);
}
return 0;
}
已AC;
其实这也是一道递推题。。。
当已知n=1,以及n=2时 就很好做了 n>=3时
已n块为突破点 n块只有三种E F O,将每种字符取到的情况相加就是总共的情况了
不管n-1块是什么字符 n块总可以取E或F 所以就有2*a[n-1]
如果n为O时 那么不管n-2块为什么字符 n-1总能取到E或F 这时就有2*a[n-2];
所以a[n]=2*(a[n-1]+a[n-2]);