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

📄 queen.cpp

📁 8皇后问题的C++算法
💻 CPP
字号:
#include<iostream>
#include<fstream>
#include"compare.cpp"
void Queen(ofstream &ofile)
{
	int count=0;
	for(int i0=0;i0<8;i0++)
		for(int i1=0;i1<8;i1++){if(i1==i0) continue;
		for(int i2=0;i2<8;i2++){if(i2==i1||i2==i0) continue;
		for(int i3=0;i3<8;i3++){if(i3==i2||i3==i1||i3==i0) continue;
		for(int i4=0;i4<8;i4++){if(i4==i3||i4==i2||i4==i1||i4==i0) continue;
		for(int i5=0;i5<8;i5++){if(i5==i4||i5==i3||i5==i2||i5==i1||i5==i0) continue;
		for(int i6=0;i6<8;i6++){if(i6==i5||i6==i4||i6==i3||i6==i2||i6==i1||i6==i0) continue;
		for(int i7=0;i7<8;i7++){if(i7==i6||i7==i5||i7==i4||i7==i3||i7==i2||i7==i1||i7==i0) continue;						
				{
					 int mk0=8+0-i0-1; int sk0=0+i0;
					 int mk1=8+1-i1-1; int sk1=1+i1;
					 int mk2=8+2-i2-1; int sk2=2+i2;
					 int mk3=8+3-i3-1; int sk3=3+i3;
					 int mk4=8+4-i4-1; int sk4=4+i4;
					 int mk5=8+5-i5-1; int sk5=5+i5;
					 int mk6=8+6-i6-1; int sk6=6+i6;
					 int mk7=8+7-i7-1; int sk7=7+i7;
					 int mk[]={mk0,mk1,mk2,mk3,mk4,mk5,mk6,mk7};
					 int sk[]={sk0,sk1,sk2,sk3,sk4,sk5,sk6,sk7};
					 int i[]={i0,i1,i2,i3,i4,i5,i6,i7};
					 vector<int> vmk(mk,mk+8);
					 vector<int> vsk(sk,sk+8);
					 vector<int> vi(i,i+8);
					 if(compare(vmk)&&compare(vsk)){
						count++;
					 	for(int j=0;j<8;j++) ofile<<vi[j]<<" ";
						ofile<<" ";
						if(count%4==0) ofile<<'\n';
					 }
		}}}}}}}}
		ofile<<"there are totly "<<count<<" outputs!"<<endl;
}
void main()
{
	ofstream ofile("E:\\C++\\eightqueen_result.txt");
	if(!ofile)
	{
		cerr<<"unable to open the file! "<<endl;
		exit(1);
	}
	Queen(ofile);
}

⌨️ 快捷键说明

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