(C)
#包括<stdio.h>
int宽度,高度;
字符网格[16][16];
int calc_ways(int x,int y){
if(!((无符号)x<WIDTH&&(无符号的)y<HEIGHT))返回0;
if(grid[x][y])返回0;
如果(x+y==宽度+高度-2),则返回1;
网格[x][y]=1;
整数n;
n=计算路径(x-2,y-1);
n+=计算路径(x-2,y+1);
n+=计算方式(x-1,y-2);
n+=计算路径(x-1,y+2);
n+=计算方式(x+1,y-2);
n+=计算方式(x+1,y+2);
n+=计算方式(x+2,y-1);
n+=计算方式(x+2,y+1);
网格[x][y]=0;
返回n;
}
int main(int argc,char**argv)
{
对于(int i=1;i<8;++i){
宽度=高度=i;
memset(网格,0,sizeof(网格));
printf(“%2d:%d\n”,i,calc_ways(0,0));
}
}