校园招聘常见英文单词:谁有八皇后非递归算法?
#include<iostream.h>
void main()
{
int A[8];
int flag;//标记
int m=0;//总共有几种答案
int t,tt;
for(int a=1;a<=8;a++)
for(int b=1;b<=8;b++)
for(int c=1;c<=8;c++)
for(int d=1;d<=8;d++)
for(int e=1;e<=8;e++)
for(int f=1;f<=8;f++)
for(int g=1;g<=8;g++)
for(int h=1;h<=8;h++)
{
//T++;
//if(!(T%100000))
//cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<T<<endl;
// 为了便于运算数组里
A[0]=a;
A[1]=b;
A[2]=c;
A[3]=d;
A[4]=e;
A[5]=f;
A[6]=g;
A[7]=h;
//比较是否在同一列
flag=0;
for(int i=7;i>0;i--)
{
for(int j=0;j<i;j++)
if(A[i]==A[j])
{
flag=1;
break;
}
if(flag) break;
}
if(!flag)//比较是否在对角线上
for( i=7;i>0;i--)
{
for(int j=0;j<i;j++)
{
t=A[i];
tt=A[j];
if(tt>t)
{
tt=9-tt;
t=9-t;
}
if(t-i==tt-j)
{
flag=1;
break;
}
}
if(flag) break;
}
//if(flag) cout<<"*****************不行******************"<<endl;
//else {
if(!flag)
{
//cout<<endl<<endl;
for(i=0;i<=7;i++)
cout<<A[i]<<" ";
m++;
cout<<"************************"<<m<<endl;
}
}
}