首页 > 代码库 > 不容易系列之(3)—— LELE的RPG难题

不容易系列之(3)—— LELE的RPG难题

f(n) = 1, ... , n-2 , n-1, n
前n-2个已涂好后,涂第n-1个即有2种情况: 
1. n-1的色与n-2和1的色都不相同,那么n就是剩下的那个色,米选择。
即就是f(n-1)
2. n-1的色与n-2不相同但与1个色一样,那么n的色就有2个色选择.
即就是f(n-2)*2

综上得:f(n) = f(n-1) + 2*f(n-2);

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