首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
八皇后
时间:
2016-09-25 17:31:40
阅读:
151
评论:
0
收藏:
0
[点我收藏+]
标签:
public
class Queen8 {
public
static
int num =
0;
//累计方案总数
public
static
final
int MAXQUEEN =
8;
//皇后个数,同时也是棋盘行列总数
public
static
int[] cols =
new
int[MAXQUEEN];
//定义cols数组,表示8列棋子摆放情况
public Queen8() {
//核心函数
getArrangement(
0);
System.out.print(
"/n");
System.out.println(MAXQUEEN+
"皇后问题有"+num+
"种摆放方法。");
}
public
void getArrangement(
int n){
//遍历该列所有不合法的行,并用rows数组记录,不合法即rows[i]=true
boolean[] rows =
new
boolean[MAXQUEEN];
for(
int i=
0;i<n;i++){
rows[cols[i]]=
true;
int d = n-i;
if(cols[i]-d >=
0)rows[cols[i]-d]=
true;
if(cols[i]+d <= MAXQUEEN-
1)rows[cols[i]+d]=
true;
}
for(
int i=
0;i<MAXQUEEN;i++){
//判断该行是否合法
if(rows[i])
continue;
//设置当前列合法棋子所在行数
cols[n] = i;
//当前列不为最后一列时
if(n<MAXQUEEN-
1){
getArrangement(n+
1);
}
else{
//累计方案个数
num++;
//打印棋盘信息
printChessBoard();
}
}
}
public
void printChessBoard(){
System.out.print(
"第"+num+
"种走法 /n");
for(
int i=
0;i<MAXQUEEN;i++){
for(
int j=
0;j<MAXQUEEN;j++){
if(i==cols[j]){
System.out.print(
"0 ");
}
else
System.out.print(
"+ ");
}
System.out.print(
"/n");
}
}
public
static
void main(String args[]){
Queen8 queen =
new Queen8();
}
}
八皇后
标签:
原文地址:http://www.cnblogs.com/pzhh/p/5906154.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!