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

📄 nqueens.cpp

📁 这是计算机算法中的回溯法中的一个经典的问题--N皇后问题!希望对学计算机算法的同学有用!
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
int X[100];
bool PLASE(int k)
{
	int i=1;
	while(i<k)
	{
		if((X[i]==X[k])||(abs(X[i]-X[k])==abs(i-k)))
			return false;
		i++;
	}
	return true;
}
void Print(int X[],int n)
{
	int i;
	for(i=1;i<=n;i++)
		cout<<X[i]<<" ";
	cout<<endl;
}
void NQUEENS(int n)
{
	int k;
	X[1]=0;k=1;
	while(k>0)
	{
		X[k]=X[k]+1;
		while((X[k]<=n)&&(!PLASE(k)))
			X[k]=X[k]+1;
		if(X[k]<=n)
		{
			if(k==n)
				Print(X,k);
			else
			{
				k++;
				X[k]=0;
			}
		}
		else
			k--;
	}
}
void main()
{
	int n;
	cout<<"输入要处理的皇后数:"<<endl;
	cin>>n;
	NQUEENS(n);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -