📄 nqueen.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -