📄 黄昆.txt
字号:
#include<iostream>
using namespace std;
int a[10]={0}; //记录八皇后位置的数组,同时也是栈
int top=0; //栈顶
int line[10]={0}; //标记行是否摆放
int diag1[20]={0}; //标记主对角线
int diag2[20]={0}; //标记副对角线
int main()
{
freopen("output.txt","w",stdout);
int i,j;
int k=0;
do
{
//cout<<top<<endl;
for(i=a[top];i<8;++i)
{
if(line[i]==0&&diag1[top+i]==0&&diag2[7+top-i]==0)//可放
{
a[top]=i;
line[i]=1;
diag1[top+i]=1;
diag2[7+top-i]=1;
++top;
break;
}
}
if(top==8)//栈满则输出
{
cout<<"Case: "<<++k<<endl;
for(i=0;i<8;++i)
{
cout<<" ";
for(j=0;j<8;++j)
{
if(j==a[i])cout<<".";
else cout<<"#";
}
cout<<endl;
}
cout<<"----------------------"<<endl;
system("pause");
}
if(i==8||top==8)//没有可放的位置或者栈满,则出栈
{
a[top]=0;
--top;
i=a[top];
line[i]=0;
diag1[top+i]=0;
diag2[7+top-i]=0;
++a[top];
}
}while(top>=0);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -