http://acm.hdu.edu.cn/showproblem.php?pid=2047
#include<stdio.h>
int main(){
int n,i,j;
__int64 f[40];
f[1] = 3;
f[2] = 8;
for(i = 3;i < 40;i++){
f[i] = f[i-1]*2+f[i-2]*2;
}
while(scanf("%d",&n) == 1){
printf("%I64d\n",f[n]);
}
return 0;
}
如果末尾加的是E或F(总是可以的),显然是2*f[i-1],如果加的是O,则末2位一定是EO或FO,则为2*f[i-2],由加法原理...