8皇后问题的递归解决 java
来源:互联网 发布:js防水施工工艺 编辑:程序博客网 时间:2024/05/17 23:31
//程序运行后输出八皇后问题的解的数量public class EightQueens { public int[] a = { -1, -1, -1, -1, -1, -1, -1, -1 }; // 元素默认值是-1 public int ways = 0; // 解决方案计数器 public boolean check(int row, int col) { // 在row行,col列可以放置皇后吗? // 初始行,第一行,无须判断,可以放皇后,下面的循环不执行 for (int i = 0; i < row; i++) { if (a[i] == col) { // 判断同列是否有皇后冲突 return false; // 返回0表示不能放,有冲突 } if (row - i == Math.abs(col - a[i])) { // 判断对角线是否有皇后冲突,注意调用了绝对值函数 return false; } } return true; } // 此函数实现在第n行放置皇后, 第n行的某一列如果放皇后,则a[n]的值由-1改为该列的列值 public void place(int n) { if (n == 8) { // 递归函数的出口,从0到7行都已经放置完毕,并且都是正确的,所以当n=8的时候, // 方案数加1 ways++; // 可以将a[n]的值输出,此处代码省略 } else { //代码开发 // 请将else语句块中的代码给以实现 for(int i=0;i<8;i++){ a[n]=i; if(check(n,i)){ place(n+1); } } //代码结束 } } public static void main(String[] args) { EightQueens eq = new EightQueens(); eq.place(0); System.out.println(eq.ways); }}
阅读全文
0 0
- 8皇后问题的递归解决 java
- java利用递归解决八皇后问题
- 递归实现解决8皇后问题
- 递归解决八皇后问题
- 用递归的方法和非递归方法解决8皇后问题
- 递归-8皇后问题
- 八皇后问题使用排列的方法递归解决
- python基于右递归解决八皇后问题的方法
- 【十一】递归与回溯--解决8皇后问题
- 递归方法解决八皇后问题
- 递归解决八皇后问题-小昝
- 递归应用--八皇后java解决
- 递归求解8皇后问题
- Java解决八皇后问题
- Java解决N皇后问题
- 关于八皇后的非递归解决
- n皇后问题java递归实现
- 八皇后问题 回溯 非递归 java
- 跳转到google Play市场
- banner
- C语言 查找书籍
- Scala练习-选择排序
- TrainSimulator(Railworks)官方开发文档
- 8皇后问题的递归解决 java
- Android系统定制和源码开发以及源码编译
- mybaits中的一级缓存和二级缓存使用
- 背包问题II
- QColorDialog中Pick Screen Color无法翻译为中文的解决办法
- Jquery select2 AJAX获取json数据后无法选中
- win7 iis6部署网站怎么快速查看打开物理路径
- 第三方ORM框架GreenDao
- 正则表达式