⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nqueen.h

📁 《数据结构(c语言版)》配套光盘 学习数据库不可缺少的辅助材料
💻 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 + -