?? ep6_14.cpp
字號:
#include<iostream.h>
#include<stdio.h>
class xqueens
{
private:
int n,count,a[24],b[24],c[24],x[8],i;
public:
xqueens(int nn);
void print();
void try_(int i);
void counter();
};
xqueens::xqueens(int nn)
{
n=nn;
count=0;
for (i=0;i<2*n+8;i++)
{
a[i]=1;
b[i]=1;
c[i]=1;
}
}
void xqueens::print()
{
int k;
char con;
for(k=0;k<n;k++)
printf("%4d",x[k]);
count+=1;
if (count%25==0)
cin.get(con);
if (count==25)
cin.get(con);
cout<<endl;
}
void xqueens::try_(int i)
{
int j;
for (j=0;j<n;j++)
if (a[j+7] && b[i+j+7] && c[i-j+7])
{
x[i]=j+1;
a[j+7]=0;
b[i+j+7]=0;
c[i-j+7]=0;
if (i<n-1)
try_(i+1);
else print();
a[j+7]=1;
b[i+j+7]=1;
c[i-j+7]=1;
}
}
void xqueens::counter()
{
cout<<"count="<<count<<endl;
}
void main()
{
int n;
cout<<endl;
cout<<"How many queens do you want to play?(4...8)"<<endl;
cin>>n;
while (n<4||n>8)
{
cout<<"Infeasible! Please try again.(4...8)"<<endl;
cin>>n;
}
xqueens c(n);
c.try_(0);
c.counter();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -