博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
八皇后问题
阅读量:5255 次
发布时间:2019-06-14

本文共 1094 字,大约阅读时间需要 3 分钟。

#include <stdio.h>

#include <stdlib.h>
static char Queen[8][8];
static int a[8];
static int b[15];
static int c[15];
static int iQueenNum = 0;//record state
void qu(int i);

int main(int argc, char *argv[])

{
//init
int line, column;
for(line = 0;line < 8;line++)
{
a[line] = 0;
for(column = 0;column < 8;column++)
{
Queen[line][column] = '*';
}
}
for(line = 0;line < 15;line++)
{
b[line] = c[line] = 0;;
}
qu(0);
system("PAUSE");
return 0;
}

void qu(int i)//columm

{
int iColumn;
for (iColumn = 0;iColumn < 8;iColumn++)
{
//no conflict
if(a[iColumn]==0 && b[i-iColumn+7]==0 && c[i+iColumn]==0)
{
//put a queen
Queen[i][iColumn] = '@';
//record confilict
a[iColumn] = 1;
b[i-iColumn+7] = 1;
c[i+iColumn] = 1;
if(i<7) qu(i+1);
else//out put
{
int line, column;
printf("第%d种状态为:\n", ++iQueenNum);
for(line = 0;line < 8;line++)
{
for(column = 0;column < 8;column++)
{
printf("%c ", Queen[line][column]);
}
printf("\n");
}
printf("\n\n");
}
//back
Queen[i][iColumn] = '*';
a[iColumn] = 0;
b[i-iColumn+7] = 0;
c[i+iColumn] = 0;
}
}
}

 

 

 

 

转载于:https://www.cnblogs.com/hbf369/archive/2012/09/06/2673655.html

你可能感兴趣的文章
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
Java实现二分查找
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
桥接模式-Bridge(Java实现)
查看>>
303. Range Sum Query - Immutable
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
前台freemark获取后台的值
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
Django 相关
查看>>
Python(软件目录结构规范)
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>