public class Queen8 {//记录个数int count = 0;//定义一个max表示共有多少个皇后int max = 8;//定义一个数组,保存皇后放置的位置的结果int[] arr = new int[max];public static void main(String[] args) {Queen8 q = new Queen8();q.check(0);System.out.println(q.count);}//放置皇后/*每一层进入下一层都会有个for循环的结构,即可产生回溯*/private void check(int n){if (n == max){//退出print();return;}//依次放入皇后,并判断是否冲突for (int i = 0; i < max; i++) {//先把当前这个皇后 n, 放到该行的第一列arr[n] = i;//判断当放置第n个皇后到i列时,是否冲突if (judge(n)){//接着放入n+1个皇后,即开始递归check(n+1);}//如果冲突,就继续执行for这个循环}}//查看当我们放置第n个皇后时,检测是否和前面已经放好的皇后冲突private boolean judge(int n){//n表示第n个皇后for (int i = 0; i < n; i++) {/*说明:1. arr[i] == arr[n] 判断不在同一列2. Math.abs(n-i) == Math.abs(arr[n]-arr[i])判断是否在同一斜线*/if (arr[i] == arr[n] || Math.abs(n-i) == Math.abs(arr[n]-arr[i])){return false;}}return true;}//将皇后摆放的位置输出private void print(){count++;for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}
}

八皇后问题----Java实现相关推荐

  1. 八皇后问题java_八皇后问题java实现

    八皇后问题java实现public class eightqueen { public static int count=0; public static void main(String[] arg ...

  2. 八皇后问题(Java代码实现)

    什么是八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后 ...

  3. 八皇后java_八皇后(JAVA算法实现)

    在学习现代软件工程构建之法这门课时,老师要求发表一篇博客,使用JAVA算法实现八皇后问题的求解.写这篇博客时,我学习了一些其他的博客,自己无法解决时,向他人学习也是一种方法. 国际西洋棋棋手马克斯·贝 ...

  4. 用递归思想和回溯算法解决八皇后问题(java实现)

    八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...

  5. 回溯算法解决八皇后问题(JAVA实现)

    送给程序猿们一句话 <拥有水滴石穿的坚持:懂得聚沙成塔的积累:磨练坚韧不拔的意志:学习脚踏实地的奋斗:提升立世做人的技巧:突破自我设限的障碍.> 文章目录 背景 问题解决 思路 什么是回溯 ...

  6. 八皇后java_经典八皇后问题:Java语言

    问题描述:将八个皇后放在棋盘上,任何两个皇后都不能互相攻击(即没有任何两个皇后在同一行.同一列或者同一对角线上)如图所示,题目来自于<java语言程序设计:基础篇>练习题6.20和6.22 ...

  7. 用java实现八皇后问题_使用java语言实现八皇后问题

    八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子.正确答案为92中,接下来用java语言实现. 解: package eightQuen; / ...

  8. 八皇后问题的Java递归算法

    1. 八皇后问题 在8*8的棋盘上,放置8个皇后,使各个皇后之间不处于同一行.同一列.同一斜线上,如下图红线部分是和中间红色圆圈冲突位置. 2. 八皇后的递归分析 1. 使用递归分析,首先,第一个皇后 ...

  9. Java基础记忆12(八皇后算法和五子棋玩法)

    首先,在国际象棋中.八皇后是8*8棋盘,其中皇后可以直线行走,可以斜线行走,不分上下左右格数的. 附可行摆法: 所以,可归纳问题的条件为,8皇后之间需满足: 1.不在同一行上              ...

  10. java中经典八皇后难题_Java实现经典八皇后的问题

    今天自己实现了八皇后的问题,其实代码并不长,但是关于虚拟机中怎样实现的想了好长时间特别是红色部分.现在还是有点不是很明白.代码如下,已经实现运行. public class EightQueen { ...

最新文章

  1. 关于python2和python3除法的区别
  2. 使用 Binlog 和 Canal 从 MySQL 抽取数据
  3. 2016年Web前端面试题
  4. 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
  5. 第16/24周 SQL Server 2014中的基数计算
  6. 推进 DevSecOps 走向未来
  7. OO第一单元总结——多项式求导
  8. n维椭球体积公式_干掉公式 —— numpy 就该这么学
  9. 图像处理之基础---大话小波和卷积
  10. 在页面加载后执行任务
  11. python 谷歌翻译 api_python免费调用谷歌翻译接口
  12. iphone更改照片分辨率?手机怎样修改图片分辨率?
  13. C语言编写飞机大战程序,C语言实现简单飞机大战
  14. 个人SEO成长指南:该怎么开启你的SEO业务
  15. 读吴军博士《智能时代》有感
  16. CentOS 7.2 安装Subversion(SVN)
  17. excel上下标录入技巧
  18. 二叉排序树详解及实现
  19. discuz mysql data_终于找到Discuz! Database Error终极解决办法了!
  20. [转]身体各部位暴瘦的方法

热门文章

  1. 大二狗卸任社团职位以及对专业发展方向的思考与总结
  2. 真·杂项:资本论阅读笔记(随缘更新)
  3. 恶意程序检测之malconv模型
  4. 关于USBKEY的CSP学习
  5. Spring Security Oauth2 JWT
  6. 外卖行业现状分析_2018年中国在线外卖行业市场现状及发展趋势分析 产品本地差异化细分或将为破局点...
  7. 打通法律服务群众“最后一公里”,方正璞华劳动人事法律自助咨询服务平台频获“点赞”
  8. 实用的网页模板(一)
  9. 【车间调度】柔性作业车间调度问题的研究现状
  10. NO3:步履蹒跚-完成第一章节学习