//5X5棋盘马走日问题的解的数量
#include<stdio.h>
int steps = 0;
int result = 0;
int axis_x[] = { 1,1,2,2,-1,-1,-2,-2 };
int axis_y[] = { 2,-2,1,-1,2,-2,1,-1 };
int grid[5][5] = {
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}
};
bool isAvailable(int x, int y) {
if (x < 1)
return false;
if (x > 5)
return false;
if (y < 1)
return false;
if (y > 5)
return false;
if (grid[x][y] == 1)
return false;
return true;
}
void findnext(int x, int y) {
for (int i = 0; i < 8; i++) {
if (isAvailable(x + axis_x[i], y + axis_y[i])) {
grid[x + axis_x[i]][y + axis_y[i]] = 1;
steps++;
if (steps == 25)
result++;
findnext(x + axis_x[i], y + axis_y[i]);
steps--;
grid[x + axis_x[i]][y + axis_y[i]] = 0;
}
}
}
5X5棋盘马走日问题的解的数量
猜你喜欢
转载自blog.csdn.net/qq_39197960/article/details/88054993
今日推荐
周排行