题目:​​http://acm.hdu.edu.cn/showproblem.php?pid=2047​

设n位字符串,最后一位是O的字符串的个数为a[n],最后一位不是O的字符串的个数是b[n],
总字符串个数为x[n],
则有

f[n]=a[n]+b[n];
a[n]=b[n-1];
b[n]=2*f[n-1];
====>f[n]=2*f[n-1]+2*f[n-2]

#include<stdio.h>
int main ()
{
int i,a;
__int64 t[51]={0,3,8};
for(i=3;i<=50;i++)
t[i] = 2*t[i-2] + 2*t[i-1];
while (scanf("%d",&a) != EOF)
printf("%I64d\n",t[a]);
return 0;
}