//8皇后问题
#include<math.h> //需要调用数学中的绝对值函数
#include<iostream>
using namespace std;
#define N 10 //置数组x[N]比较大,因为从x[1]开始放
int x[N];
int n=8;
//判别能否放置一个新皇后
bool place(int k)
{
int i;
i=1;
while(i<k)
{
if(x[i]==x[k]||abs(x[i]-x[k])==abs(i-k)) //在同一行或斜对角不能放置新皇后,abs()为绝对值函数
return false;
i++;
}
return true;
}
void queens()
{
int k,j,i=1;
int s[8]={4,6,8,2,7,1,3};
x[1]=0; //置初值第0列,实际是从第1列开始
k=1; //从第一行开始
while(k>0){
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载