解题思路:
f(n)=1,2,.....n-2,n-1,n
前n-2个已经涂好,那么n-1有两种可能
1.n-1与n-2和1 的颜色都不同
1 粉, n-2 红, n-1 绿、 那么n的颜色可以说是没得选了f(n-1)种可能
1 红, n-2 绿 , n-1 粉
1 绿, n-2 红, n-1 粉
2.n-1与n-2不同但与1相同,那么n就有两种选择
1 红, n-2 绿, n-1 红, n 绿/粉
1 绿, n-2 粉, n-1 绿, n 粉/红
1 粉, n-2 红, n-1 粉 n 红/绿
可以看出此时 n的颜色可能有2*f(n-2)
#include <stdio.h>
int main(void)
{
int n,i;
long long larr[55];
larr[1]=3;larr[2]=6;larr[3]=6;
for(i=4;i<55;i++)larr[i]=larr[i-1]+2*larr[i-2];
while(scanf("%d",&n)!=EOF)
printf("%lld\n",larr[n]);
return 0;
}