八皇后—Java
package queen;
public class queen {
static boolean col[] = new boolean[8];
static boolean main_diagonal[] = new boolean[15];
static boolean counter_diagonal[] = new boolean[15];
static int record[]=new int[8];
static int count = 0;
public static void search(int x) {
for (int i = 0; i < 8; i++) {
if (col[i] == false && main_diagonal[i - x + 7] == false && counter_diagonal[i + x] == false) {//这里的判断条件是列可用,主对角线可用,次对角线可用
record[x]=i;//记录当前列号
if (x == 7) {//当最后一个安全位置被确定之后,进行计数并画出图像
count++;
for (int k = 0; k < 8; k++) {
for(int j=0;j<8;j++){
if (j==record[k]) {
System.out.print("Q");
}
else System.out.print("*");
}
System.out.println("");
}
System.out.println("\n");
return;//这里的return尤为重要
}
col[i] = true;
main_diagonal[i - x + 7] = true;
counter_diagonal[i + x] = true;
search(x + 1);//递归至下一层
col[i] = false;//回溯时需要解标记
main_diagonal[i - x + 7] = false;
counter_diagonal[i + x] = false;
}
else//如果当前位置不安全,继续向本行下一个位置遍历
continue;
}
}
public static void main(String[] args) {
search(0);
System.out.println("共有"+count+"解法");
}
}
八皇后—Java的更多相关文章
- 八皇后java算法
import java.util.Date; public class EightQueen { public static void main(String[] args) { long star ...
- 八皇后问题java实现
八皇后问题java实现 public class eightqueen { public static int count=0; public static void main(String[] ar ...
- 使用java语言实现八皇后问题
八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子.正确答案为92中,接下来用java语言实现. 解: package eightQuen; / ...
- Java编程思想—八皇后问题(数组法、堆栈法)
Java编程思想-八皇后问题(数组法.堆栈法) 实验题目:回溯法实验(八皇后问题) 实验目的: 实验要求: 实验内容: (1)问题描述 (2)实验步骤: 数组法: 堆栈法: 算法伪代码: 实验结果: ...
- 算法学习 八皇后问题的递归实现 java版 回溯思想
1.问题描述 八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或 ...
- Java实现蓝桥杯 算法提高 八皇后 改
**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ...
- java实现八皇后问题(递归和循环两种方式)
循环方式: package EightQueens; public class EightQueensNotRecursive { private static final boolean AVA ...
- 比赛组队问题 --- 递归解法 --- java代码 --- 八皇后问题
两队比赛,甲队为A.B.C3人,乙队为X.Y.Z3人.已知A不和X比,C不和X.Z比,请编程序找出3队赛手名单 采用了与八皇后问题相似的解法,代码如下: 如有疑问请链接八皇后问题的解法:http:// ...
- 八皇后问题 --- 递归解法 --- java代码
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上.八皇后 ...
随机推荐
- ICEM(1)—边界结构网格绘制
以两个圆为例 1. geometry→ create curve→ 选择圆,随便画两个圆 2. block下选择create block,选择第一项,initial block,设置改为2D Plan ...
- Spring(3)
一.Spring容器 Spring 提供了两种类型的IOC容器(后面还会讲到AOP容器): (1)BeanFactory:IOC容器的基本实现,是Spring框架的基础设施,面向Spring的本身 ( ...
- 【浅层优化实战】ssh远程登录Linux卡慢的全过程排查及解决方案
ssh远程登录Linux卡慢的全过程排查及解决方案 前言: 在linux操作系统使用过程中偶然一次感到使用ssh远程连接软件连接操作系统需要等待许久,第一次没在意,第二次也没在意,第三次有点忍受不住了 ...
- 在mac上获取iphone当前屏幕截图
xcode->windows->devices->take screenshot 
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...
- 涵涵和爸爸习惯养成进度表(一)(May 5 - May 25)
规则说明 三周时间(21天)内,没有哭脸,不超过三个无表情脸,可以给一个奖励(动画书等) 涵涵违反规则,在爸爸和妈妈都同意的情况下,可以给无表情脸 爸爸违反规则,在妈妈和涵涵都同意的情况下,可以给无表 ...
- 《2---关于JDBC编程过程中驱动配置问题》
说明:我在Editplus中编写了一个简单的JDBC程序,用来测试是否和数据库连接正确.读者如有其它疑问,可以留言交流. [1]程序如下: import java.sql.*; public clas ...
- Spring3.0 与 MyBatis框架 整合小实例
本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数 ...
- flask SQLAlchemy中一对多的关系实现
SQLAlchemy是Python中比较优秀的orm框架,在SQLAlchemy中定义了多种数据库表的对应关系, 其中一对多是一种比较常见的关系.利用flask sqlalchemy实现一对多的关系如 ...