Java实现经典八皇后的问题
来源:互联网 发布:php程序员工具箱 编辑:程序博客网 时间:2024/05/16 13:45
今天自己实现了八皇后的问题,其实代码并不长,但是关于虚拟机中怎样实现的想了好长时间特别是红色部分。现在还是有点不是很明白。代码如下,已经实现运行。
public class EightQueen {public static int sum = 0; //累计方法总数 public static final int MAXQUEEN = 8;//皇后个数,同时也是棋盘行列总数 public static int []columnForRow = new int[MAXQUEEN]; //定义数组,表示8列棋子摆放情况 public static void main(String[] args) {placeQueue(0);System.out.println();System.out.println("共有"+sum+"走法。");}//检查所放位子是否合法。public static boolean check(int row){boolean t=true;for(int i=0;i<row;i++){/* * 放在同一列,绝对值=0; * 放在对角线,绝对值=1; * 放在斜对角线,绝对值=-1 **/int diff=Math.abs(columnForRow[row]-columnForRow[i]);if ((diff==0)||(diff==row-i)){t=false;break;}}return t;}//放棋子的具体过程。public static void placeQueue(int row){<span style="color:#ff0000;">if(row==MAXQUEEN){sum++;printBoard();return;}</span>for(int i=0;i<MAXQUEEN;i++){columnForRow[row]=i;if(check(row)){placeQueue(row+1);}}}//输出结果public static void printBoard(){System.out.println("第"+sum+"个走法:");for(int i=0;i<MAXQUEEN;i++){for(int j=0;j<MAXQUEEN;j++){if(j!=columnForRow[i]){System.out.print("+");}else System.out.print("Q");}System.out.println();}}}
0 0
- Java实现经典八皇后的问题
- 八皇后问题的java实现
- 八皇后问题的java 实现
- 八皇后问题的java实现
- java实现八皇后的排列问题
- 八皇后问题java实现
- 经典八皇后问题;
- 经典八皇后问题
- 经典八皇后问题
- 八皇后问题的实现
- 八皇后问题的实现
- 经典问题“八皇后”的解法
- 用回搠法解决八皇后问题的Java实现
- 八皇后问题(java实现)
- 算法复习 - 八皇后问题(Java实现)
- 使用java语言实现八皇后问题
- java实现八皇后问题算法
- 【经典算法】八皇后问题
- Ubuntu下从ftp服务器获取文件的方法
- 暑假一个月学习心得(Arduino硬件)
- libGDX开发教程(一)--Libgdx基础入门
- ECSHOP首页根据关键字调用相关商品
- TestComplete总结十
- Java实现经典八皇后的问题
- hdu 4961 Boring Sum(数学题)
- Error in invoking target 'mkldflags ntcontab.o nnfgt.o' of makefile '.../ins_net_client.mk'--68%问题
- 供面试官和应聘人员参考关于项目的一些问题
- HYSBZ - 1036 树的统计Count 树链剖分 求和+最大值
- Spring RMI 配置和使用以及带均衡策略时client端的配置
- string 类
- HDU 4967 Handling the past(线段树)
- 【Andorid开发框架学习】之Volley入门