symons

___________每一天都是幸福的!!

  博客园  ::  :: 新随笔  ::  :: 订阅 订阅  :: 管理

这题还是递推,

只能在后面加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\n",num[n]);
    }
    return 0;
}

 

posted on 2013-11-07 20:35  symons  阅读(248)  评论(0)    收藏  举报