这题还是递推,
只能在后面加E,O,F三个字母,
若在f(n-1)后加,E,F,则新增了2*f(n-1)个序列
若加 O ,则只能在f(n-1)种尾部为E,F的序列后加,回到上一种情况,即f(n-2)*2
把上面两种情况合起来就变成了 f(n)=2*f(n-1)+2*f(n-2)。
#include <stdio.h> int main(){ __int64 num[40]; int i,n; num[1]=3; num[2]=8; for(i=3;i<40;++i){ num[i]=2*(num[i-1]+num[i-2]); } while(~scanf("%d",&n)){ printf("%I64d ",num[n]); } return 0; }