8皇后问题
来源:互联网 发布:58网络电视直播 编辑:程序博客网 时间:2024/06/16 04:37
1007.8皇后问题
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
输出8皇后问题所有结果。
输入
没有输入。
输出
每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。
输入样例
输出样例
输出的前几行:
No 1:
A.......
....A...
.......A
.....A..
..A.....
......A.
.A......
...A....
No 2:
A.......
.....A..
.......A
..A.....
......A.
...A....
.A......
....A...
No 1:
A.......
....A...
.......A
.....A..
..A.....
......A.
.A......
...A....
No 2:
A.......
.....A..
.......A
..A.....
......A.
...A....
.A......
....A...
#include<iostream>#include<stdio.h>#include<math.h>using namespace std;int a[8]={0};int num=0;int check(int row,int col);void output2();int search(int m);int main(){search(0);return(0);}int search(int m){int i;int row,col;if(m==8) {num++;output2();return(0);}for(i=0;i<8;i++){a[m]=i;row=m,col=i;if(check(row,col)) search(m+1);}return(0);}int check(int row,int col){int i;for(i=0;i<row;i++){if(a[i]==col||fabs(row-i)==fabs(col-a[i])){return(0);}}return(1);}void output2(){char b[8][8];int i,j;for(i=0;i<8;i++){for(j=0;j<8;j++){b[i][j]='.';}}for(i=0;i<8;i++){b[i][a[i]]='A';}printf("No %d:\n",num);for(i=0;i<8;i++){for(j=0;j<8;j++){cout<<b[i][j];}cout<<endl;}}
通过递归函数实现所有情况的穷举。
阅读全文
0 0
- 8皇后问题和N皇后问题
- 8皇后问题改进~
- 8皇后问题
- 8皇后问题求解
- 8皇后问题
- 8皇后问题
- 8皇后问题算法
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 【算法】8皇后问题
- 8皇后问题续
- 8皇后问题算法
- 8皇后问题
- 走楼梯
- Python+Opencv+Qt4编写Windows下摄像头图像采集显示程序
- 前端基础之CSS3
- HDU 6231 K-th Number 尺取法
- spring06 aop 引入
- 8皇后问题
- 机器学习(1) ---- 机器学习算法综述
- vmware克隆centOS虚拟机
- [4]_[解决]Ubuntu16.04.3 DNS解析失败
- 多线程编程:线程死锁的原因以及解决方法
- Spark编程指南入门之Java篇一-基本知识
- 求出0~999之间的所有“水仙花数”并输出。
- web.xml中url-pattern的/和/*的区别
- .创建一个窗口程序(JFrame),标题栏起名为“浏览器”,有一个菜单条,有“文件”、“编辑”、“查看”3个菜单。“文件”菜单有两个菜单项,一项是“打开”,一项是“保存”,“打开”项做成子菜单,有两个