资源简介
在n x n棋盘(有n x n个格点的棋盘)的某个格点上有一个中国象棋马,马走日字。求一条周游棋盘的路径,使得马能够从起始位置起沿着该路径每个格点恰好走一次最后回到出发位置。
用回溯法解决该问题。输入一个正整数n,输出一个解,解的输出形式尽可能直观。
代码片段和文件信息
#include “stdio.h“
int mn;
char **chess;
int ** trip;
bool check(int iint j)
{
if(i<0 || i>=m || j<0 || j>=n) return false;
if(chess[i][j]==‘w‘) return false;
if(chess[i][j]==‘1‘) return false;
return true;
}
void output(int count )
{
printf(“%d\n“count);
for(int i=0;i {
for(int j=0;j printf(“%4d“trip[i][j]);
printf(“\n“);
}
}
void Walk(int iint jint count)
{
//出口:i==m-1 && j==n-1
if(i==0 && j==0 && count==m*n)
{
chess[i][j]=‘w‘;
trip[i][j]=++count;
output(count);
chess[i][j]=‘0‘;
trip[i][j]=0;
return;
}
//合法性判断(出界,是否走过,是否故障)
if (!check(ij)) return;
else
{
//记录当前位置走过,步数
count++;
chess[i][j]=‘w‘;
trip[i][j]=
- 上一篇:C++api大全
- 下一篇:VC++网络考试系统,服务器+用户端+数据库+源代码.
相关资源
- 用回溯法解决八皇后问题C语言实现
- STM32跑马灯实验58159
- 隐马尔可夫模型C和C++实现
- Fluent UDF-马世虎翻译版.zip
- 超级马里奥,C语言实现
- C++程序设计实践教程 (马光志 着)
- 黑马传智C语言视频教程讲义文档201
- 隐马尔可夫模型与异常检测的论文
- 黑马C++讲义
- MFC黑马程序员教程.rar
- C++木马病毒的查杀设计与实现含源码
- C++超级马里奥的游戏
- C++木马(源代码)
- 马氏距离分类
- 编程实现图像的百叶窗和马赛克效果
- C++ 秒余额快捷马0.1完美版
- 2013最新C++远程控制木马源代码
- 马踏棋盘源码.zip
- 马尔可夫链的c++ C语言实现方法
- 经典教材单片机的C语言应用程序设计
- 黑马程序员 UnixLinux基础讲义
- 基于回溯法的TSP问题解决方案
- 黑马最新c、c++全栈培训第24期高清无
- 黑马C/C++讲义
- 黑马程序员c++配套课件 《轻松搞定
- 黑马扫地僧C\\C++\\数据结构\\算法\\设
- 黑马程序员最新24期C/C++全栈培训讲义
- 火牛跑马灯实验(火牛开发板-UGPIO)
- 传智播客旗下黑马程序员c++视频课程
- 匠心精作C++从0到1入门编程-学习编程
评论
共有 条评论