#include<stdio.h>
static int m = 0;
#define MAX 256
static int a[MAX] ={0};
bool ok(int i, int j,int n) //检查(i,j)上能否放棋子
{ int j1 = j;
int i1 = i;
bool ok1 = true; //检查第i行上能否放棋子
if(j == 0) ;
else{
while(( j1 > 0) && ok1 ){
j1--;
if(a[j1] != i1) ok1 =true;
else ok1 = false;
}
j1 = j;
i1 = i; //检查对角线上能否放棋子
while(( j1 > 0) && (i1 >= 0) && ok1) {
j1--;
i1--;
if(a[j1] != i1) ok1 =true;
else ok1 = false;
}
j1 = j;
i1 = i; //检查另一对角线上能否放棋子
while(( j1 > 0) && ( i1 < n) && ok1) {
j1--;
i1++;
if(a[j1] != i1) ok1 =true;
else ok1 = false;
}
}
return ok1;
}
void queen(int j,int n){ //从第j列开始逐个试探
int i;
int num;
if (j >= n)
{ m++; printf("m=%d : ",m);
for (int x = 0;x < n;x++) printf(" %d",num =a[x]+1);
printf("\n");
}
else{
for( i = 0; i < n;i++)
if(ok(i,j,n)) //检查(i,j)上能否放棋子
{ a[j] = i; //在(i,j)上放一个棋子
queen(j+1,n) ;
}
}//else
}
void main(){
int n = 0;
printf("Input how many queens:");
scanf("%d",&n);
queen(0,n);
}
pxzpxz110
- 粉丝: 0
- 资源: 1
最新资源
- bootstrap橙色宽屏样式智能科技无人机企业网站模板代码下载.zip
- bootstrap粉色宽屏样式业务案例动态企业网页模板代码下载.zip
- bootstrap橙色宽屏样式新媒体直播企业网站模板代码下载.zip
- bootstrap黑色精美样式高端餐饮企业网站模板代码下载.zip
- bootstrap黑色宽屏样式餐厅美食企业网站模板代码下载.zip
- bootstrap黑色宽屏样式钢铁切割加工企业网站模板代码下载.zip
- bootstrap黑色宽屏样式美国之旅旅行社企业网站模板代码下载.zip
- bootstrap黑色宽屏样式软件开发团队企业网站模板代码下载.zip
- bootstrap黑色宽屏样式生活图文博客网站模板代码下载.zip
- bootstrap红色大气样式品牌服装企业网站模板代码下载.zip
- bootstrap红色酷炫样式个性手机展示企业网站模板代码下载.zip
- bootstrap红色简洁样式货车物流运输企业网站模板代码下载.zip
- bootstrap红色大气样式食品餐饮企业网站模板代码下载.zip
- jdk1.8 api文档(中文)
- bootstrap红色宽屏样式创新国外主页个人网站模板代码下载.zip
- bootstrap红色宽屏样式办公室内装修企业网站模板代码下载.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈