JAVA Eight Queens
来源:互联网 发布:云端软件平台1.0 编辑:程序博客网 时间:2024/05/16 06:31
项目要求
Eight Queens:同行、同列、同对角线只能有一个Queen,不能冲突。
代码如下
public class EightQueens {// 同列有皇后则用1表示,否则为0private int[] column;// 右上至左下对角线有皇后则用1表示,否则为0private int[] rup;// 左上至右下对角线有皇后则用1表示,否则为0private int[] lup;// 放置皇后private int[] queen;// 解答编号private int num;// 皇后个数,可以更改为任意数private int MaxQueen = 8;public EightQueens() {column = new int[MaxQueen + 1];rup = new int[(2 * MaxQueen) + 1];lup = new int[(2 * MaxQueen) + 1];for (int i = 1; i <= MaxQueen; i++)column[i] = 1;for (int i = 1; i <= (2 * MaxQueen); i++)rup[i] = lup[i] = 1;queen = new int[MaxQueen + 1];}// 回溯法判断八皇后问题public void backtrack(int i) {if (i > MaxQueen) {showAnswer();} else {for (int j = 1; j <= MaxQueen; j++) {// 判断同列、对角线是否有皇后if ((column[j] == 1) && (rup[i + j] == 1)&& (lup[i - j + MaxQueen] == 1)) {queen[i] = j;// 设定为占用column[j] = rup[i + j] = lup[i - j + MaxQueen] = 0;backtrack(i + 1);column[j] = rup[i + j] = lup[i - j + MaxQueen] = 1;}}}}// 显示皇后摆放情况public void showAnswer() {num++;System.out.println("\nAnswer " + num);for (int y = 1; y <= MaxQueen; y++) {System.out.print("|");for (int x = 1; x <= MaxQueen; x++) {if (queen[y] == x) {System.out.print("Q|");} else {System.out.print(" |");}}System.out.println();}}public static void main(String[] args) {EightQueens queen = new EightQueens();queen.backtrack(1);}}
运行结果
Answer 1|Q| | | | | | | || | | | |Q| | | || | | | | | | |Q|| | | | | |Q| | || | |Q| | | | | || | | | | | |Q| || |Q| | | | | | || | | |Q| | | | |Answer 2|Q| | | | | | | || | | | | |Q| | || | | | | | | |Q|| | |Q| | | | | || | | | | | |Q| || | | |Q| | | | || |Q| | | | | | || | | | |Q| | | |Answer 3|Q| | | | | | | || | | | | | |Q| || | | |Q| | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | | |Q| | | || | |Q| | | | | |Answer 4|Q| | | | | | | || | | | | | |Q| || | | | |Q| | | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | || | | | | |Q| | || | |Q| | | | | |Answer 5| |Q| | | | | | || | | |Q| | | | || | | | | |Q| | || | | | | | | |Q|| | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | |Answer 6| |Q| | | | | | || | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | | | | |Q|| | | | | |Q| | || | | |Q| | | | |Answer 7| |Q| | | | | | || | | | |Q| | | || | | | | | |Q| || | | |Q| | | | ||Q| | | | | | | || | | | | | | |Q|| | | | | |Q| | || | |Q| | | | | |Answer 8| |Q| | | | | | || | | | | |Q| | ||Q| | | | | | | || | | | | | |Q| || | | |Q| | | | || | | | | | | |Q|| | |Q| | | | | || | | | |Q| | | |Answer 9| |Q| | | | | | || | | | | |Q| | || | | | | | | |Q|| | |Q| | | | | ||Q| | | | | | | || | | |Q| | | | || | | | | | |Q| || | | | |Q| | | |Answer 10| |Q| | | | | | || | | | | | |Q| || | |Q| | | | | || | | | | |Q| | || | | | | | | |Q|| | | | |Q| | | ||Q| | | | | | | || | | |Q| | | | |Answer 11| |Q| | | | | | || | | | | | |Q| || | | | |Q| | | || | | | | | | |Q||Q| | | | | | | || | | |Q| | | | || | | | | |Q| | || | |Q| | | | | |Answer 12| |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | ||Q| | | | | | | || | |Q| | | | | || | | | |Q| | | || | | | | | |Q| || | | |Q| | | | |Answer 13| | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | || | | | | |Q| | |Answer 14| | |Q| | | | | || | | | |Q| | | || |Q| | | | | | || | | | | | | |Q||Q| | | | | | | || | | | | | |Q| || | | |Q| | | | || | | | | |Q| | |Answer 15| | |Q| | | | | || | | | |Q| | | || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | || | | |Q| | | | || | | | | | |Q| ||Q| | | | | | | |Answer 16| | |Q| | | | | || | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | |Answer 17| | |Q| | | | | || | | | |Q| | | || | | | | | | |Q|| | | |Q| | | | ||Q| | | | | | | || | | | | | |Q| || |Q| | | | | | || | | | | |Q| | |Answer 18| | |Q| | | | | || | | | | |Q| | || |Q| | | | | | || | | | |Q| | | || | | | | | | |Q||Q| | | | | | | || | | | | | |Q| || | | |Q| | | | |Answer 19| | |Q| | | | | || | | | | |Q| | || |Q| | | | | | || | | | | | |Q| ||Q| | | | | | | || | | |Q| | | | || | | | | | | |Q|| | | | |Q| | | |Answer 20| | |Q| | | | | || | | | | |Q| | || |Q| | | | | | || | | | | | |Q| || | | | |Q| | | ||Q| | | | | | | || | | | | | | |Q|| | | |Q| | | | |Answer 21| | |Q| | | | | || | | | | |Q| | || | | |Q| | | | ||Q| | | | | | | || | | | | | | |Q|| | | | |Q| | | || | | | | | |Q| || |Q| | | | | | |Answer 22| | |Q| | | | | || | | | | |Q| | || | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | |Answer 23| | |Q| | | | | || | | | | |Q| | || | | | | | | |Q||Q| | | | | | | || | | |Q| | | | || | | | | | |Q| || | | | |Q| | | || |Q| | | | | | |Answer 24| | |Q| | | | | || | | | | |Q| | || | | | | | | |Q||Q| | | | | | | || | | | |Q| | | || | | | | | |Q| || |Q| | | | | | || | | |Q| | | | |Answer 25| | |Q| | | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | |Answer 26| | |Q| | | | | || | | | | | |Q| || |Q| | | | | | || | | | | | | |Q|| | | | |Q| | | ||Q| | | | | | | || | | |Q| | | | || | | | | |Q| | |Answer 27| | |Q| | | | | || | | | | | |Q| || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | || | | |Q| | | | ||Q| | | | | | | || | | | |Q| | | |Answer 28| | |Q| | | | | || | | | | | | |Q|| | | |Q| | | | || | | | | | |Q| ||Q| | | | | | | || | | | | |Q| | || |Q| | | | | | || | | | |Q| | | |Answer 29| | | |Q| | | | ||Q| | | | | | | || | | | |Q| | | || | | | | | | |Q|| |Q| | | | | | || | | | | | |Q| || | |Q| | | | | || | | | | |Q| | |Answer 30| | | |Q| | | | ||Q| | | | | | | || | | | |Q| | | || | | | | | | |Q|| | | | | |Q| | || | |Q| | | | | || | | | | | |Q| || |Q| | | | | | |Answer 31| | | |Q| | | | || |Q| | | | | | || | | | |Q| | | || | | | | | | |Q|| | | | | |Q| | ||Q| | | | | | | || | |Q| | | | | || | | | | | |Q| |Answer 32| | | |Q| | | | || |Q| | | | | | || | | | | | |Q| || | |Q| | | | | || | | | | |Q| | || | | | | | | |Q||Q| | | | | | | || | | | |Q| | | |Answer 33| | | |Q| | | | || |Q| | | | | | || | | | | | |Q| || | |Q| | | | | || | | | | |Q| | || | | | | | | |Q|| | | | |Q| | | ||Q| | | | | | | |Answer 34| | | |Q| | | | || |Q| | | | | | || | | | | | |Q| || | | | |Q| | | ||Q| | | | | | | || | | | | | | |Q|| | | | | |Q| | || | |Q| | | | | |Answer 35| | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | | |Q| | |Answer 36| | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | ||Q| | | | | | | || | |Q| | | | | || | | | |Q| | | || | | | | | |Q| |Answer 37| | | |Q| | | | || | | | | |Q| | ||Q| | | | | | | || | | | |Q| | | || |Q| | | | | | || | | | | | | |Q|| | |Q| | | | | || | | | | | |Q| |Answer 38| | | |Q| | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | |Q| | | |Answer 39| | | |Q| | | | || | | | | |Q| | || | | | | | | |Q|| | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | || |Q| | | | | | |Answer 40| | | |Q| | | | || | | | | | |Q| ||Q| | | | | | | || | | | | | | |Q|| | | | |Q| | | || |Q| | | | | | || | | | | |Q| | || | |Q| | | | | |Answer 41| | | |Q| | | | || | | | | | |Q| || | |Q| | | | | || | | | | | | |Q|| |Q| | | | | | || | | | |Q| | | ||Q| | | | | | | || | | | | |Q| | |Answer 42| | | |Q| | | | || | | | | | |Q| || | | | |Q| | | || |Q| | | | | | || | | | | |Q| | ||Q| | | | | | | || | |Q| | | | | || | | | | | | |Q|Answer 43| | | |Q| | | | || | | | | | |Q| || | | | |Q| | | || | |Q| | | | | ||Q| | | | | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | |Answer 44| | | |Q| | | | || | | | | | | |Q||Q| | | | | | | || | |Q| | | | | || | | | | |Q| | || |Q| | | | | | || | | | | | |Q| || | | | |Q| | | |Answer 45| | | |Q| | | | || | | | | | | |Q||Q| | | | | | | || | | | |Q| | | || | | | | | |Q| || |Q| | | | | | || | | | | |Q| | || | |Q| | | | | |Answer 46| | | |Q| | | | || | | | | | | |Q|| | | | |Q| | | || | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || |Q| | | | | | || | | | | |Q| | |Answer 47| | | | |Q| | | ||Q| | | | | | | || | | |Q| | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | | | | |Q| || | |Q| | | | | |Answer 48| | | | |Q| | | ||Q| | | | | | | || | | | | | | |Q|| | | |Q| | | | || |Q| | | | | | || | | | | | |Q| || | |Q| | | | | || | | | | |Q| | |Answer 49| | | | |Q| | | ||Q| | | | | | | || | | | | | | |Q|| | | | | |Q| | || | |Q| | | | | || | | | | | |Q| || |Q| | | | | | || | | |Q| | | | |Answer 50| | | | |Q| | | || |Q| | | | | | || | | |Q| | | | || | | | | |Q| | || | | | | | | |Q|| | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| |Answer 51| | | | |Q| | | || |Q| | | | | | || | | |Q| | | | || | | | | | |Q| || | |Q| | | | | || | | | | | | |Q|| | | | | |Q| | ||Q| | | | | | | |Answer 52| | | | |Q| | | || |Q| | | | | | || | | | | |Q| | ||Q| | | | | | | || | | | | | |Q| || | | |Q| | | | || | | | | | | |Q|| | |Q| | | | | |Answer 53| | | | |Q| | | || |Q| | | | | | || | | | | | | |Q||Q| | | | | | | || | | |Q| | | | || | | | | | |Q| || | |Q| | | | | || | | | | |Q| | |Answer 54| | | | |Q| | | || | |Q| | | | | ||Q| | | | | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | || | | | | | |Q| |Answer 55| | | | |Q| | | || | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | || | | |Q| | | | |Answer 56| | | | |Q| | | || | |Q| | | | | || | | | | | | |Q|| | | |Q| | | | || | | | | | |Q| ||Q| | | | | | | || | | | | |Q| | || |Q| | | | | | |Answer 57| | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | | | | |Q|| | | | | |Q| | || | | |Q| | | | || |Q| | | | | | |Answer 58| | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | || | |Q| | | | | |Answer 59| | | | |Q| | | || | | | | | |Q| || |Q| | | | | | || | | |Q| | | | || | | | | | | |Q||Q| | | | | | | || | |Q| | | | | || | | | | |Q| | |Answer 60| | | | |Q| | | || | | | | | |Q| || |Q| | | | | | || | | | | |Q| | || | |Q| | | | | ||Q| | | | | | | || | | |Q| | | | || | | | | | | |Q|Answer 61| | | | |Q| | | || | | | | | |Q| || |Q| | | | | | || | | | | |Q| | || | |Q| | | | | ||Q| | | | | | | || | | | | | | |Q|| | | |Q| | | | |Answer 62| | | | |Q| | | || | | | | | |Q| || | | |Q| | | | ||Q| | | | | | | || | |Q| | | | | || | | | | | | |Q|| | | | | |Q| | || |Q| | | | | | |Answer 63| | | | |Q| | | || | | | | | | |Q|| | | |Q| | | | ||Q| | | | | | | || | |Q| | | | | || | | | | |Q| | || |Q| | | | | | || | | | | | |Q| |Answer 64| | | | |Q| | | || | | | | | | |Q|| | | |Q| | | | ||Q| | | | | | | || | | | | | |Q| || |Q| | | | | | || | | | | |Q| | || | |Q| | | | | |Answer 65| | | | | |Q| | ||Q| | | | | | | || | | | |Q| | | || |Q| | | | | | || | | | | | | |Q|| | |Q| | | | | || | | | | | |Q| || | | |Q| | | | |Answer 66| | | | | |Q| | || |Q| | | | | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | |Q| | | || | | | | | | |Q|| | | |Q| | | | |Answer 67| | | | | |Q| | || |Q| | | | | | || | | | | | |Q| ||Q| | | | | | | || | | |Q| | | | || | | | | | | |Q|| | | | |Q| | | || | |Q| | | | | |Answer 68| | | | | |Q| | || | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | |Answer 69| | | | | |Q| | || | |Q| | | | | ||Q| | | | | | | || | | | | | | |Q|| | | |Q| | | | || |Q| | | | | | || | | | | | |Q| || | | | |Q| | | |Answer 70| | | | | |Q| | || | |Q| | | | | ||Q| | | | | | | || | | | | | | |Q|| | | | |Q| | | || |Q| | | | | | || | | |Q| | | | || | | | | | |Q| |Answer 71| | | | | |Q| | || | |Q| | | | | || | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|Answer 72| | | | | |Q| | || | |Q| | | | | || | | | |Q| | | || | | | | | | |Q||Q| | | | | | | || | | |Q| | | | || |Q| | | | | | || | | | | | |Q| |Answer 73| | | | | |Q| | || | |Q| | | | | || | | | | | |Q| || |Q| | | | | | || | | |Q| | | | || | | | | | | |Q||Q| | | | | | | || | | | |Q| | | |Answer 74| | | | | |Q| | || | |Q| | | | | || | | | | | |Q| || |Q| | | | | | || | | | | | | |Q|| | | | |Q| | | ||Q| | | | | | | || | | |Q| | | | |Answer 75| | | | | |Q| | || | |Q| | | | | || | | | | | |Q| || | | |Q| | | | ||Q| | | | | | | || | | | | | | |Q|| |Q| | | | | | || | | | |Q| | | |Answer 76| | | | | |Q| | || | | |Q| | | | ||Q| | | | | | | || | | | |Q| | | || | | | | | | |Q|| |Q| | | | | | || | | | | | |Q| || | |Q| | | | | |Answer 77| | | | | |Q| | || | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | |Q| | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | |Answer 78| | | | | |Q| | || | | |Q| | | | || | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | |Q| | | || |Q| | | | | | || | | | | | | |Q|Answer 79| | | | | |Q| | || | | |Q| | | | || | | | | | |Q| ||Q| | | | | | | || | | | | | | |Q|| |Q| | | | | | || | | | |Q| | | || | |Q| | | | | |Answer 80| | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | || | |Q| | | | | |Answer 81| | | | | | |Q| ||Q| | | | | | | || | |Q| | | | | || | | | | | | |Q|| | | | | |Q| | || | | |Q| | | | || |Q| | | | | | || | | | |Q| | | |Answer 82| | | | | | |Q| || |Q| | | | | | || | | |Q| | | | ||Q| | | | | | | || | | | | | | |Q|| | | | |Q| | | || | |Q| | | | | || | | | | |Q| | |Answer 83| | | | | | |Q| || |Q| | | | | | || | | | | |Q| | || | |Q| | | | | ||Q| | | | | | | || | | |Q| | | | || | | | | | | |Q|| | | | |Q| | | |Answer 84| | | | | | |Q| || | |Q| | | | | ||Q| | | | | | | || | | | | |Q| | || | | | | | | |Q|| | | | |Q| | | || |Q| | | | | | || | | |Q| | | | |Answer 85| | | | | | |Q| || | |Q| | | | | || | | | | | | |Q|| |Q| | | | | | || | | | |Q| | | ||Q| | | | | | | || | | | | |Q| | || | | |Q| | | | |Answer 86| | | | | | |Q| || | | |Q| | | | || |Q| | | | | | || | | | |Q| | | || | | | | | | |Q||Q| | | | | | | || | |Q| | | | | || | | | | |Q| | |Answer 87| | | | | | |Q| || | | |Q| | | | || |Q| | | | | | || | | | | | | |Q|| | | | | |Q| | ||Q| | | | | | | || | |Q| | | | | || | | | |Q| | | |Answer 88| | | | | | |Q| || | | | |Q| | | || | |Q| | | | | ||Q| | | | | | | || | | | | |Q| | || | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | |Answer 89| | | | | | | |Q|| |Q| | | | | | || | | |Q| | | | ||Q| | | | | | | || | | | | | |Q| || | | | |Q| | | || | |Q| | | | | || | | | | |Q| | |Answer 90| | | | | | | |Q|| |Q| | | | | | || | | | |Q| | | || | |Q| | | | | ||Q| | | | | | | || | | | | | |Q| || | | |Q| | | | || | | | | |Q| | |Answer 91| | | | | | | |Q|| | |Q| | | | | ||Q| | | | | | | || | | | | |Q| | || |Q| | | | | | || | | | |Q| | | || | | | | | |Q| || | | |Q| | | | |Answer 92| | | | | | | |Q|| | | |Q| | | | ||Q| | | | | | | || | |Q| | | | | || | | | | |Q| | || |Q| | | | | | || | | | | | |Q| || | | | |Q| | | |
学习心得
为了解决八皇后问题特地研究了一下回溯法,希望能够在以后学习中再多加运用。
题目来自《JAVA语言程序设计》P230-6.20***
2 0
- JAVA Eight Queens
- eight queens
- eight queens
- JAVA三星题之Eight Queens
- (codes)eight queens program
- Eight Queens Puzzle
- 八皇后(eight queens problem)
- 八皇后问题,Eight Queens Puzzle
- “Beginning Python”(二)The eight queens
- Eight queens puzzle——八皇后问题
- Java Test Eight
- [Leetcode] N-Queens (Java)
- N-Queens II Java
- N-Queens Java
- N-Queens II (Java)
- [LeetCode][Java] N-Queens
- (java)N-Queens
- leetcode:N-Queens 【Java】
- Linux 线程同步的三种方法
- ios学习之模糊效果的学习
- 黑马程序员—Java 学习笔记1 Java概述
- leetcode32
- LeetCode | Valid Palindrome
- JAVA Eight Queens
- JS中的this理解
- 斐波那契数列-台阶问题
- C++中进程间相互通信的十一种方法(转)
- 安卓中页面(activity)的数据交互的方式:
- linux并发服务器(1)
- Objective-C内存管理详解——dealloc方法
- MySQL-5.6.24免安装版配置方法
- Java中的clone方法