nqueen.h
来自「《数据结构(c语言版)》配套光盘 学习数据库不可缺少的辅助材料」· C头文件 代码 · 共 43 行
H
43 行
#include<iostream>
#include<cmath>
using namespace std;
bool Place (int k, int i, int *x)
{
for (int j=0; j<k; j++) //从第0行开始到第k-1行依次检查,一旦冲突函数返回值为false
{
if (x[j]==i || abs(x[j]-i)==abs(j-k))
return false;
}
return true;
}
void Queens (int k, int n, int *x) //排第k+1个皇后
{
for (int i=0; i<n; i++)
{
if (Place(k,i,x))
{
x[k]=i;
if (k==n-1) //已排完所有皇后时输出
{
cout<<"*****************\n";
for (int j=0; j<n; j++)
{
for (int a=1; a<=x[j]; a++)
cout<<"# ";
cout<<"Q ";
for (int b=1; b<=n-1-x[j]; b++)
cout<<"# ";
cout<<endl;
}
cout<<"*****************\n";
}
else
Queens(k+1, n, x); //排第k+2个皇后
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?