Problem Description 突破蝙蝠的包围,yifenfei来到一处悬崖面前,悬崖彼岸就是前进的方向,好在现在的yifenfei已经学过御剑术,可御剑轻松飞过悬崖。
Input 输入数据首先给出一个整数C,表示测试组数。
Output 对应每组输入数据,请输出一个整数,表示yifenfei安然抵达彼岸的方法数。
Sample Input 2 2 3
Sample Output 9 21 |
递推:当n-1与n-2颜色相同时,n可以选三种颜色,即3*num[n-2];
当n-1与n-2颜色不同时,有2*(num[n-1]-num[n-2])种,因为n-1要和n-2不同所以此时n-1有num[n-1]-num[n-2]种,而n又和n-1不同
#include<stdio.h>
__int64 a[45];
int main()
{
int t;
a[0]=0;
a[1]=3;
a[2]=9;
a[3]=21;
for(i=4;i<=45;i++)
a[i]=a[i-2]+2*a[i-1];
scanf("%d",&t);
while(t--){
int num;
scanf("%d",&num);
printf("%I64d\n",a[num]);
}
}