题目如图所示。

#include<iostream>
#include<cstdio>
#define D 8
#define N 5
using namespace std;int chessboard[N][N];
int chessboard_copy[N][N];
int step[N*N+1];
int step_num=0, result=0, flag=1;
static int dx[D]={-2, -1, 1, 2, 2, 1, -1, -2};
static int dy[D]={1, 2, 2, 1, -1, -2, -2, -1};void show01()
{cout<<"按5*5棋盘格式输出:"<<endl;int i, j;for(i=0; i<N; ++i){for(j=0; j<N; ++j)printf("%-2d ", chessboard[i][j]);cout<<endl;}cout<<endl;
}void show()
{cout<<"按题目要求输出:"<<endl;int i;cout<<"{ ";for(i=1; i<=N*N; ++i)printf("[%d,%d] ", i, step[i]);cout<<" }"<<endl<<endl;
}void horse(int x, int y)
{if(x>=0 && x<N && y>=0 && y<N && chessboard[x][y]==0){//为了按题目输出,step_num是第几步,chessboard_copy[x][y]是棋盘标号step[++step_num] = chessboard_copy[x][y];//标记棋盘被访问chessboard[x][y] = step_num;if(step_num == N*N){if(flag){show01();show();}//题目要求只输出一个解flag = 0;result++;}int i;for(i=0; i<D; ++i){horse(x+dx[i], y+dy[i]);}//回溯chessboard[x][y] = 0;--step_num;}}int main()
{int i, j;//初始化棋盘副本的编号for(i=0; i<N; ++i)for(j=0; j<N; ++j)chessboard_copy[i][j] = i*N+j+1;horse(0, 0);cout<<"总共解的种数为:"<<result<<endl;return 0;
}

求马跳棋盘踏满5*5的国际象棋棋盘有多少种解法?相关推荐

  1. php国际象棋棋盘,php趣味编程 - php输出国际象棋棋盘 - 小徐

    php趣味编程 - php输出国际象棋棋盘 /* 输出国际象棋棋盘 1来代表黑色的格子 2来代表白色的格子 8*8格子 1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1 1 2 1 2 ...

  2. python绘制8×8棋盘_python图形工具turtle绘制国际象棋棋盘

    本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...

  3. python画国际象棋棋盘图片_python使用turtle绘制国际象棋棋盘

    本文实例为大家共享了python使用turtle画国际象棋棋盘的详细代码,供大家参考,详细内容如下 使用的方法是每一个小格每一个小格的画 import turtle for i in range(8) ...

  4. php国际象棋棋盘,php趣味编程 - php输出国际象棋棋盘

    php趣味编程 - php输出国际象棋棋盘 /* 输出国际象棋棋盘 1来代表黑色的格子 2来代表白色的格子 8*8格子 1 2 1 2 1 2 1 2 2 1 2 1 2 1 2 1 1 2 1 2 ...

  5. python创建棋盘矩阵_python使用turtle绘制国际象棋棋盘

    本文实例为大家分享了python使用turtle画国际象棋棋盘的具体代码,供大家参考,具体内容如下 使用的方法是每一个小格每一个小格的画 import turtle for i in range(8) ...

  6. 棋盘代码_【案例】 绘制国际象棋棋盘?(turtle 登场)

    案例介绍 今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8. ​国际象棋棋盘 turtle 绘图(海归绘图)很适合用来引导孩子学习编程,请想象绘图区有一只机器海龟,起始位置在 x-y 平 ...

  7. 【案例】绘制国际象棋棋盘?(turtle 登场)

    文章目录 案例介绍 准备工作 细节设计 代码汇总 运行结果 后记 参考资料 案例介绍 今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8. 国际象棋棋盘 turtle 绘图(海归绘图)很适 ...

  8. 硬币找钱问题,求所有可能解决方案数目,最少的钱币数目,每种钱币用多少张

    [题目简介] 现存在一堆面值为 V1.V2.V3 - 个单位的硬币,一共有多少种找钱方法可以找出总值为 T 个单位的零钱?最少需要多少张钱币?在最少钱币数目找钱的条件下,每种钱币使用的次数是多少?假设 ...

  9. 回溯法 之 马周游(马跳日)问题

    回溯法的应用很多,下面讲述一个有趣的马周游问题. 马周游(马跳日)问题:在一个 8*8 的棋盘上(如下图)一匹马从任意位置开始,恰好走过棋盘中的每一格(每个格子有且只能走一次),并且最后还可以回到起点 ...

最新文章

  1. pytorch adam 源码 关于优化函数的调整 optimizer 调参 重点
  2. 7 Java Performance Metrics to Watch After a Major Release--转
  3. python的读取纯文本文件的几种模式
  4. int main() 与 void main()
  5. python编程常见小技巧
  6. SpringBoot2.1.5 (9)--- GET 请求
  7. AX2009 的EP开发要点
  8. input标签里面的文字位置
  9. java并发令牌机制,redis令牌机制实现秒杀
  10. 树形$dp$学习笔记
  11. 为什么每天扣我50无忧币?
  12. scratch冬天下雪了 电子学会图形化编程scratch等级考试三级真题和答案解析2022年3月
  13. 计算机网络原理 谢希仁(第8版)第二章习题答案
  14. jsp代码编写简单的BBS论坛项目的总结
  15. 射极跟随器实验报告数据处理_实验五射极跟随器实验报告.doc
  16. QT5使用PCAN读取CAN数据
  17. python之dataframe写excel合并单元格_python之DataFrame实现excel合并单元格
  18. pdf 电子签章 java_在pdf上加盖电子签章
  19. 文章《Deep Image Homography Estimation》
  20. 1-STM32嵌入式开发环境的搭建——IAR FOR ARM环境的搭建及破解教程

热门文章

  1. 十六进制转化为ASCII码引起的的进制的故事
  2. LeetCode 874 题解
  3. 上海服务器 微信平台,微信公众平台服务器 fastweixin
  4. linux改变文件所有者命令
  5. 《Python自然语言处理-雅兰·萨纳卡(Jalaj Thanaki)》学习笔记:04 预处理
  6. Java设计模式之(四)——原型模式
  7. java毕业生设计大学生健康管理系统计算机源码+系统+mysql+调试部署+lw
  8. 计算机系统结构自考真题解析,计算机系统结构自考2015年4月真题
  9. emboss 安装使用
  10. html5相册瀑布背景,HTML5使用canvas实现代码流瀑布的方法