思路:因为禁止在串中出现O相邻的情况,所以第n个有两种情况:1,不是O则有a[n-1]*2种情况;2,是O,则有a[n-2]×2种情况。
公式:a[i] = a[i-1]*2 + a[i-2]×2;
#include<stdio.h>
int main()
{
__int64 a[45];
a[0] = 0;
a[1] = 3;
a[2] = 8;
int i;
for(i = 3;i < 45; i++)
a[i] = a[i-1]*2 + 2*a[i-2];
int n;
while(scanf("%d",&n) != EOF)
printf("%I64d\n",a[n]);
return 0;
}