有排成一行的n個方格,用紅(Red)、粉(Pink)、綠(Green)三色塗每個格子,每格塗一色,要求任何相鄰的方格不能同色,且首尾兩格也不同色.求全部的滿足要求的塗法.
Input
輸入數據包含多個測試實例,每個測試實例佔一行,由一個整數N組成,(0<n<=50)。
Output
對於每個測試實例,請輸出全部的滿足要求的塗法,每個實例的輸出佔一行。
Sample Input
1 2
Sample Output
3 6
#include<iostream>
using namespace std;
int main()
{
int n,i;
__int64 a[51];
//這裏需要定義64位,因爲數字很大滴
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]);
}
return 0;
}