N皇后问题
来源:互联网 发布:滴滴打车软件 编辑:程序博客网 时间:2024/06/06 17:59
public class Queen {
private static final int n = 10;
private static int[] val = new int[n];
/**
* 确定r行已放置的皇后是否可以
* @param r:行号
*/
public boolean isPlace(int r){
boolean b = true;
for(int i = 0; i < r; i++){
if (val[r] == val[i] || Math.abs(val[r] - val[i]) == Math.abs(r -i)) {
b = false;
break;
}
}
return b;
}
/**
* 递归法实现N皇后问题,确定每一行皇后放置位置
* @param r:行号,从0到n-1
*/
public void traceBackQueen(int r) {
if (r == n) {
print();
}else {
for (int i = 0; i < n; i++) {
val[r] = i;
if (isPlace(r)) {
traceBackQueen(r+1);
}
}
}
}
/**
* 打印结果
*/
public void print(){
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j == val[i]) {
System.out.print("("+ i + "," + j +")" + "/t");
}
}
}
System.out.println();
}
/*
* test
*/
public static void main(String[] args){
Queen queen = new Queen();
queen.traceBackQueen(0);
}
}
private static final int n = 10;
private static int[] val = new int[n];
/**
* 确定r行已放置的皇后是否可以
* @param r:行号
*/
public boolean isPlace(int r){
boolean b = true;
for(int i = 0; i < r; i++){
if (val[r] == val[i] || Math.abs(val[r] - val[i]) == Math.abs(r -i)) {
b = false;
break;
}
}
return b;
}
/**
* 递归法实现N皇后问题,确定每一行皇后放置位置
* @param r:行号,从0到n-1
*/
public void traceBackQueen(int r) {
if (r == n) {
print();
}else {
for (int i = 0; i < n; i++) {
val[r] = i;
if (isPlace(r)) {
traceBackQueen(r+1);
}
}
}
}
/**
* 打印结果
*/
public void print(){
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j == val[i]) {
System.out.print("("+ i + "," + j +")" + "/t");
}
}
}
System.out.println();
}
/*
* test
*/
public static void main(String[] args){
Queen queen = new Queen();
queen.traceBackQueen(0);
}
}
0 0
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- N 皇后问题
- N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N皇后问题优化
- N皇后问题
- n皇后问题
- N皇后问题
- UINavigationController设置导航栏属性
- N皇后问题
- C++ const
- HDU 5578 Friendship of Frog(暴力)——2015ACM/ICPC亚洲区上海站
- 【Leetcode】N-Queens II
- N皇后问题
- 整数转化成字符串; 字符串转换为整数
- mina总结
- node 可视化调试(支持监控文件变化)
- 0-1背包问题
- KVC 的 容错方法
- 如何从服务端下载的文件保存到SD卡
- LintCode 螺旋矩阵 (新解法)
- Scala: Under The Hood of Hello World