蜂巢每一格为正六边形结构,所以蜜蜂每次有6个方向可以走,问n步以后走回最初点有多少种情况。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <queue>
#include <iomanip>
#include <cstring>
#include <cstdlib>
using namespace std;
int map[16][30][30];
int main()
{
int t;
int n;
memset(map,0,sizeof(map));
map[0][15][15]=1;
for(int i=1;i<=15;i++)
{
for(int j=1;j<=30;j++)
{
for(int k=1;k<=30;k++)
{
map[i][j][k]=map[i-1][j][k-1]+map[i-1][j][k+1]+map[i-1][j-1][k]+map[i-1][j+1][k]+map[i-1][j-1][k-1]+map[i-1][j+1][k+1];
}
}
}
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",map[n][15][15]);
}
return 0;
}