zoukankan
html css js c++ java
用c++实现的8皇后问题
最近弄弄一些经典的算法,八皇后是其一。
在8*8的棋盘上摆8个皇后,使任2皇后不在同一行、列、对角线上,有几种摆法?
可以扩展到N皇后。
#include
<
iostream
>
#include
<
string
>
using
namespace
std;
#define
NUM 8
char
cache[NUM][NUM]
=
{
0
}
;
void
queen(
int
row,
int
max)
{
//
依次放置在列上
for
(
int
i
=
0
; i
<
max;
++
i)
{
//
清空当前行
memset(cache[row],
'
x
'
, max);
bool
fHas
=
false
;
//
判断同一列
for
(
int
irow
=
0
; irow
<
row;
++
irow)
{
if
(cache[irow][i]
==
'
o
'
)
{
fHas
=
true
;
break
;
}
//
对角线是否有皇后
int
icol
=
i;
if
(icol
+
(row
-
irow)
<
max)
{
if
(cache[irow][icol
+
(row
-
irow)]
==
'
o
'
)
{
fHas
=
true
;
break
;
}
}
if
(icol
-
(row
-
irow)
>=
0
)
{
if
(cache[irow][icol
-
(row
-
irow)]
==
'
o
'
)
{
fHas
=
true
;
break
;
}
}
}
if
(fHas)
continue
;
cache[row][i]
=
'
o
'
;
if
(row
<
max
-
1
)
queen(row
+
1
, max);
if
(row
==
max
-
1
)
{
for
(
int
i
=
0
; i
<
max;
++
i)
{
for
(
int
j
=
0
; j
<
max;
++
j)
{
cout
<<
cache[i][j]
<<
"
"
;
}
cout
<<
endl;
}
cout
<<
endl;
}
}
}
int
main(
int
argc,
char
*
argv[])
{
queen(
0
, NUM);
return
0
;
}
查看全文
相关阅读:
【技术贴】解决Eclipse编译java源文件之后没有生成class文件|找不到class文件
小米1s 正式为我服役,纪念一下。
解决servlet的out输出流html中文乱码
小米1s充电时屏幕一直亮着不关闭的解决办法
今天遇到的问题分析
java操作Excel(org.apache.poi.hssf.usermodel)
HTML滚动文字代码 marquee标签
MIUI小米 卸载金山安全服务
Oracle DBA 逻辑备份试题
Oracle DBA结构试题1
原文地址:https://www.cnblogs.com/yoran/p/1084530.html
最新文章
18、深入浅出MFC学习笔记,关于C++
25、深入浅出MFC学习笔记,DocumentView再学习(2)
23、深入浅出MFC学习笔记,MFC解剖(骨干程序)相关
27、深入浅出MFC学习笔记,对话框
22、深入浅出MFC学习笔记,MFC解剖相关
21、深入浅出MFC学习笔记,Application Framework简介
26、深入浅出MFC学习笔记,消息映射与命令传递
19、深入浅出MFC学习笔记,关键技术简介
24、深入浅出MFC学习笔记,DocumentView再学习(1)
webQQ(腾讯)QZoneQQ日志数据库设计
热门文章
Northwind数据库设计模板(电子商务)
ASP.NET:Bula,1仿布啦微博数据库设计和网页功能图片
webQQ(腾讯)AccountQQ多账号登录数据库设计
在.Net中json应用测试整理
webQQ(腾讯)QzoneTaoTao(QQ说说即原来的滔滔))
51job数据库设计
在ASP.NET MVC中json的应用(即JsonResult)
在.net中Regex(正则)的应用
ylbtech_dbs_yestem(伊思腾)
【java】接口的作用|实例讲解java接口
Copyright © 2011-2022 走看看