Eight Queen Problem-浅究八皇后问题
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
#define QUEENNUM 8
int check(int i,int j,int a[])
{
int k;
if (i==1)
return 1;
for(k=1;k<=i-1;k++)
{
if(a[k]==j||abs(j-a[k])==abs(i-k))
return 0;
}
return 1;
}
void printqueen(int a[])
{
int i;
for(i=1;i<=QUEENNUM;i++)
cout<<a[i]<<' ';
cout<<endl;
}
void queen(int i,int a[])
{
int j;
for(j=1;j<=QUEENNUM;j++)
{
if(check(i,j,a))
{
a[i]=j;
if(i==QUEENNUM)
{
printqueen(a);
exit(0);
}
queen(i+1,a);
}
}
}
int main()
{
int arr[QUEENNUM+1];
queen(1,arr);
system("pause");
return 0;
}
此程序的结构显示这八个点的坐标为:
(1,1)
(2,5)
(3,8)
(4,6)
(5,3)
(6,7)
(7,2)
(8,4)
由图中黑色墨迹不难看出 以上结果是正确的。
八皇后问题的92个解为:
第1个解:
●□□□□□□□
□□□□●□□□
□□□□□□□●
□□□□□●□□
□□●□□□□□
□□□□□□●□
□●□□□□□□
□□□●□□□□
第2个解:
●□□□□□□□
□□□□□●□□
□□□□□□□●
□□●□□□□□
□□□□□□●□
□□□●□□□□
□●□□□□□□
□□□□●□□□
第3个解:
●□□□□□□□
□□□□□□●□
□□□●□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□□●□□□
□□●□□□□□
第4个解:
●□□□□□□□
□□□□□□●□
□□□□●□□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
□□□□□●□□
□□●□□□□□
第5个解:
□●□□□□□□
□□□●□□□□
□□□□□●□□
□□□□□□□●
□□●□□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
第6个解:
□●□□□□□□
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□□□□●
□□□□□●□□
□□□●□□□□
第7个解:
□●□□□□□□
□□□□●□□□
□□□□□□●□
□□□●□□□□
●□□□□□□□
□□□□□□□●
□□□□□●□□
□□●□□□□□
第8个解:
□●□□□□□□
□□□□□●□□
●□□□□□□□
□□□□□□●□
□□□●□□□□
□□□□□□□●
□□●□□□□□
□□□□●□□□
第9个解:
□●□□□□□□
□□□□□●□□
□□□□□□□●
□□●□□□□□
●□□□□□□□
□□□●□□□□
□□□□□□●□
□□□□●□□□
第10个解:
□●□□□□□□
□□□□□□●□
□□●□□□□□
□□□□□●□□
□□□□□□□●
□□□□●□□□
●□□□□□□□
□□□●□□□□
第11个解:
□●□□□□□□
□□□□□□●□
□□□□●□□□
□□□□□□□●
●□□□□□□□
□□□●□□□□
□□□□□●□□
□□●□□□□□
第12个解:
□●□□□□□□
□□□□□□□●
□□□□□●□□
●□□□□□□□
□□●□□□□□
□□□□●□□□
□□□□□□●□
□□□●□□□□
第13个解:
□□●□□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
□□□□□●□□
第14个解:
□□●□□□□□
□□□□●□□□
□●□□□□□□
□□□□□□□●
●□□□□□□□
□□□□□□●□
□□□●□□□□
□□□□□●□□
第15个解:
□□●□□□□□
□□□□●□□□
□●□□□□□□
□□□□□□□●
□□□□□●□□
□□□●□□□□
□□□□□□●□
●□□□□□□□
第16个解:
□□●□□□□□
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□□●□□
第17个解:
□□●□□□□□
□□□□●□□□
□□□□□□□●
□□□●□□□□
●□□□□□□□
□□□□□□●□
□●□□□□□□
□□□□□●□□
第18个解:
□□●□□□□□
□□□□□●□□
□●□□□□□□
□□□□●□□□
□□□□□□□●
●□□□□□□□
□□□□□□●□
□□□●□□□□
第19个解:
□□●□□□□□
□□□□□●□□
□●□□□□□□
□□□□□□●□
●□□□□□□□
□□□●□□□□
□□□□□□□●
□□□□●□□□
第20个解:
□□●□□□□□
□□□□□●□□
□●□□□□□□
□□□□□□●□
□□□□●□□□
●□□□□□□□
□□□□□□□●
□□□●□□□□
第21个解:
□□●□□□□□
□□□□□●□□
□□□●□□□□
●□□□□□□□
□□□□□□□●
□□□□●□□□
□□□□□□●□
□●□□□□□□
第22个解:
□□●□□□□□
□□□□□●□□
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□●□□□
□□□□□□●□
●□□□□□□□
第23个解:
□□●□□□□□
□□□□□●□□
□□□□□□□●
●□□□□□□□
□□□●□□□□
□□□□□□●□
□□□□●□□□
□●□□□□□□
第24个解:
□□●□□□□□
□□□□□●□□
□□□□□□□●
●□□□□□□□
□□□□●□□□
□□□□□□●□
□●□□□□□□
□□□●□□□□
第25个解:
□□●□□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
第26个解:
□□●□□□□□
□□□□□□●□
□●□□□□□□
□□□□□□□●
□□□□●□□□
●□□□□□□□
□□□●□□□□
□□□□□●□□
第27个解:
□□●□□□□□
□□□□□□●□
□●□□□□□□
□□□□□□□●
□□□□□●□□
□□□●□□□□
●□□□□□□□
□□□□●□□□
第28个解:
□□●□□□□□
□□□□□□□●
□□□●□□□□
□□□□□□●□
●□□□□□□□
□□□□□●□□
□●□□□□□□
□□□□●□□□
第29个解:
□□□●□□□□
●□□□□□□□
□□□□●□□□
□□□□□□□●
□●□□□□□□
□□□□□□●□
□□●□□□□□
□□□□□●□□
第30个解:
□□□●□□□□
●□□□□□□□
□□□□●□□□
□□□□□□□●
□□□□□●□□
□□●□□□□□
□□□□□□●□
□●□□□□□□
第31个解:
□□□●□□□□
□●□□□□□□
□□□□●□□□
□□□□□□□●
□□□□□●□□
●□□□□□□□
□□●□□□□□
□□□□□□●□
第32个解:
□□□●□□□□
□●□□□□□□
□□□□□□●□
□□●□□□□□
□□□□□●□□
□□□□□□□●
●□□□□□□□
□□□□●□□□
第33个解:
□□□●□□□□
□●□□□□□□
□□□□□□●□
□□●□□□□□
□□□□□●□□
□□□□□□□●
□□□□●□□□
●□□□□□□□
第34个解:
□□□●□□□□
□●□□□□□□
□□□□□□●□
□□□□●□□□
●□□□□□□□
□□□□□□□●
□□□□□●□□
□□●□□□□□
第35个解:
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□□●□□
第36个解:
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□□●□□
●□□□□□□□
□□●□□□□□
□□□□●□□□
□□□□□□●□
第37个解:
□□□●□□□□
□□□□□●□□
●□□□□□□□
□□□□●□□□
□●□□□□□□
□□□□□□□●
□□●□□□□□
□□□□□□●□
第38个解:
□□□●□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□●□□□
第39个解:
□□□●□□□□
□□□□□●□□
□□□□□□□●
□□●□□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
□●□□□□□□
第40个解:
□□□●□□□□
□□□□□□●□
●□□□□□□□
□□□□□□□●
□□□□●□□□
□●□□□□□□
□□□□□●□□
□□●□□□□□
第41个解:
□□□●□□□□
□□□□□□●□
□□●□□□□□
□□□□□□□●
□●□□□□□□
□□□□●□□□
●□□□□□□□
□□□□□●□□
第42个解:
□□□●□□□□
□□□□□□●□
□□□□●□□□
□●□□□□□□
□□□□□●□□
●□□□□□□□
□□●□□□□□
□□□□□□□●
第43个解:
□□□●□□□□
□□□□□□●□
□□□□●□□□
□□●□□□□□
●□□□□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
第44个解:
□□□●□□□□
□□□□□□□●
●□□□□□□□
□□●□□□□□
□□□□□●□□
□●□□□□□□
□□□□□□●□
□□□□●□□□
第45个解:
□□□●□□□□
□□□□□□□●
●□□□□□□□
□□□□●□□□
□□□□□□●□
□●□□□□□□
□□□□□●□□
□□●□□□□□
第46个解:
□□□●□□□□
□□□□□□□●
□□□□●□□□
□□●□□□□□
●□□□□□□□
□□□□□□●□
□●□□□□□□
□□□□□●□□
第47个解:
□□□□●□□□
●□□□□□□□
□□□●□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□□□□●□
□□●□□□□□
第48个解:
□□□□●□□□
●□□□□□□□
□□□□□□□●
□□□●□□□□
□●□□□□□□
□□□□□□●□
□□●□□□□□
□□□□□●□□
第49个解:
□□□□●□□□
●□□□□□□□
□□□□□□□●
□□□□□●□□
□□●□□□□□
□□□□□□●□
□●□□□□□□
□□□●□□□□
第50个解:
□□□□●□□□
□●□□□□□□
□□□●□□□□
□□□□□●□□
□□□□□□□●
□□●□□□□□
●□□□□□□□
□□□□□□●□
第51个解:
□□□□●□□□
□●□□□□□□
□□□●□□□□
□□□□□□●□
□□●□□□□□
□□□□□□□●
□□□□□●□□
●□□□□□□□
第52个解:
□□□□●□□□
□●□□□□□□
□□□□□●□□
●□□□□□□□
□□□□□□●□
□□□●□□□□
□□□□□□□●
□□●□□□□□
第53个解:
□□□□●□□□
□●□□□□□□
□□□□□□□●
●□□□□□□□
□□□●□□□□
□□□□□□●□
□□●□□□□□
□□□□□●□□
第54个解:
□□□□●□□□
□□●□□□□□
●□□□□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
□□□□□□●□
第55个解:
□□□□●□□□
□□●□□□□□
●□□□□□□□
□□□□□□●□
□●□□□□□□
□□□□□□□●
□□□□□●□□
□□□●□□□□
第56个解:
□□□□●□□□
□□●□□□□□
□□□□□□□●
□□□●□□□□
□□□□□□●□
●□□□□□□□
□□□□□●□□
□●□□□□□□
第57个解:
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□□□□●
□□□□□●□□
□□□●□□□□
□●□□□□□□
第58个解:
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□□●□□
□□●□□□□□
第59个解:
□□□□●□□□
□□□□□□●□
□●□□□□□□
□□□●□□□□
□□□□□□□●
●□□□□□□□
□□●□□□□□
□□□□□●□□
第60个解:
□□□□●□□□
□□□□□□●□
□●□□□□□□
□□□□□●□□
□□●□□□□□
●□□□□□□□
□□□●□□□□
□□□□□□□●
第61个解:
□□□□●□□□
□□□□□□●□
□●□□□□□□
□□□□□●□□
□□●□□□□□
●□□□□□□□
□□□□□□□●
□□□●□□□□
第62个解:
□□□□●□□□
□□□□□□●□
□□□●□□□□
●□□□□□□□
□□●□□□□□
□□□□□□□●
□□□□□●□□
□●□□□□□□
第63个解:
□□□□●□□□
□□□□□□□●
□□□●□□□□
●□□□□□□□
□□●□□□□□
□□□□□●□□
□●□□□□□□
□□□□□□●□
第64个解:
□□□□●□□□
□□□□□□□●
□□□●□□□□
●□□□□□□□
□□□□□□●□
□●□□□□□□
□□□□□●□□
□□●□□□□□
第65个解:
□□□□□●□□
●□□□□□□□
□□□□●□□□
□●□□□□□□
□□□□□□□●
□□●□□□□□
□□□□□□●□
□□□●□□□□
第66个解:
□□□□□●□□
□●□□□□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□●□□□
□□□□□□□●
□□□●□□□□
第67个解:
□□□□□●□□
□●□□□□□□
□□□□□□●□
●□□□□□□□
□□□●□□□□
□□□□□□□●
□□□□●□□□
□□●□□□□□
第68个解:
□□□□□●□□
□□●□□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
第69个解:
□□□□□●□□
□□●□□□□□
●□□□□□□□
□□□□□□□●
□□□●□□□□
□●□□□□□□
□□□□□□●□
□□□□●□□□
第70个解:
□□□□□●□□
□□●□□□□□
●□□□□□□□
□□□□□□□●
□□□□●□□□
□●□□□□□□
□□□●□□□□
□□□□□□●□
第71个解:
□□□□□●□□
□□●□□□□□
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□□●□□□□
□●□□□□□□
□□□□□□□●
第72个解:
□□□□□●□□
□□●□□□□□
□□□□●□□□
□□□□□□□●
●□□□□□□□
□□□●□□□□
□●□□□□□□
□□□□□□●□
第73个解:
□□□□□●□□
□□●□□□□□
□□□□□□●□
□●□□□□□□
□□□●□□□□
□□□□□□□●
●□□□□□□□
□□□□●□□□
第74个解:
□□□□□●□□
□□●□□□□□
□□□□□□●□
□●□□□□□□
□□□□□□□●
□□□□●□□□
●□□□□□□□
□□□●□□□□
第75个解:
□□□□□●□□
□□●□□□□□
□□□□□□●□
□□□●□□□□
●□□□□□□□
□□□□□□□●
□●□□□□□□
□□□□●□□□
第76个解:
□□□□□●□□
□□□●□□□□
●□□□□□□□
□□□□●□□□
□□□□□□□●
□●□□□□□□
□□□□□□●□
□□●□□□□□
第77个解:
□□□□□●□□
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□●□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
第78个解:
□□□□□●□□
□□□●□□□□
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□●□□□
□●□□□□□□
□□□□□□□●
第79个解:
□□□□□●□□
□□□●□□□□
□□□□□□●□
●□□□□□□□
□□□□□□□●
□●□□□□□□
□□□□●□□□
□□●□□□□□
第80个解:
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
□□●□□□□□
第81个解:
□□□□□□●□
●□□□□□□□
□□●□□□□□
□□□□□□□●
□□□□□●□□
□□□●□□□□
□●□□□□□□
□□□□●□□□
第82个解:
□□□□□□●□
□●□□□□□□
□□□●□□□□
●□□□□□□□
□□□□□□□●
□□□□●□□□
□□●□□□□□
□□□□□●□□
第83个解:
□□□□□□●□
□●□□□□□□
□□□□□●□□
□□●□□□□□
●□□□□□□□
□□□●□□□□
□□□□□□□●
□□□□●□□□
第84个解:
□□□□□□●□
□□●□□□□□
●□□□□□□□
□□□□□●□□
□□□□□□□●
□□□□●□□□
□●□□□□□□
□□□●□□□□
第85个解:
□□□□□□●□
□□●□□□□□
□□□□□□□●
□●□□□□□□
□□□□●□□□
●□□□□□□□
□□□□□●□□
□□□●□□□□
第86个解:
□□□□□□●□
□□□●□□□□
□●□□□□□□
□□□□●□□□
□□□□□□□●
●□□□□□□□
□□●□□□□□
□□□□□●□□
第87个解:
□□□□□□●□
□□□●□□□□
□●□□□□□□
□□□□□□□●
□□□□□●□□
●□□□□□□□
□□●□□□□□
□□□□●□□□
第88个解:
□□□□□□●□
□□□□●□□□
□□●□□□□□
●□□□□□□□
□□□□□●□□
□□□□□□□●
□●□□□□□□
□□□●□□□□
第89个解:
□□□□□□□●
□●□□□□□□
□□□●□□□□
●□□□□□□□
□□□□□□●□
□□□□●□□□
□□●□□□□□
□□□□□●□□
第90个解:
□□□□□□□●
□●□□□□□□
□□□□●□□□
□□●□□□□□
●□□□□□□□
□□□□□□●□
□□□●□□□□
□□□□□●□□
第91个解:
□□□□□□□●
□□●□□□□□
●□□□□□□□
□□□□□●□□
□●□□□□□□
□□□□●□□□
□□□□□□●□
□□□●□□□□
第92个解:
□□□□□□□●
□□□●□□□□
●□□□□□□□
□□●□□□□□
□□□□□●□□
□●□□□□□□
□□□□□□●□
□□□□●□□□