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

📄 ep6_14.cpp

📁 c++下运行的八后问题算法
💻 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 + -