骑士巡游问题(递归+回溯)

您所在的位置:网站首页 走完所有方格的小游戏 骑士巡游问题(递归+回溯)

骑士巡游问题(递归+回溯)

2024-07-03 12:42| 来源: 网络整理| 查看: 265

题目描述

输入 n ( 1< = n < = 10 ) 代表棋盘的规模就是 n*n 的规模,骑士永远从 (1,1) 出发,要求骑士走遍所有棋盘的格子 输出 骑士的走法(遍历棋盘的所有格子)

注意方向:

constintdx[8]={ -2,-2, -1, 1,2, 2, 1,-1};

constintdy[8]={ -1, 1, 2, 2,1,-1,-2,-2};

输入

输入 n ( 1< = n < = 10 ) 代表棋盘的规模就是 n*n 的规模,骑士永远从 (1,1) 出发,要求骑士走遍所有棋盘的格子

输出 骑士的走法(遍历棋盘的所有格子)

输出 只有唯一解

样例输入

5

样例输出

在这里插入图片描述

代码实现 #include using namespace std; int n; int a[20][20]; int dx[8] = {-2,-2,-1,1,2,2,1,-1}; int dy[8] = {-1,1,2,2,1,-1,-2,-2}; int flag = 0; void dfs(int x,int y,int num) { int x1,y1; if(num == n*n) //递归出口条件 { flag = 1; return; } for(int i = 0; i 0&&x10&&y1> n; a[1][1] = 1; dfs(1,1,1); for(int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3