📄 wanghuo.cpp
字号:
#include <iostream.h>
#include <stdlib.h>
const N=8;
bool judge(int a[N][N],int x,int y)
{
int i,j;
for (i=0;i<N;i++)
if ((i!=y)&&(a[x][i]==1))
{
return false;
exit;
}
for (i=0;i<N;i++)
if ((i!=x)&&(a[i][y]==1))
{
return false;
exit;
}
for (i=1;i<=(x<y?x:y);i++)
if (a[x-i][y-i]==1)
{
return false;
exit;
}
for (i=1;i<=(x<N-1-y?x:N-1-y);i++)
if (a[x-i][y+i]==1)
{
return false;
exit;
}
for (i=1;i<=(N-1-x<y?N-1-x:y);i++)
if (a[x+i][y-i]==1)
{
return false;
exit;
}
for (i=1;i<=(N-1-x<N-1-y?N-1-x:N-1-y);i++)
if (a[x+i][y+i]==1)
{
return false;
exit;
}
return true;
}
bool judge1(int a[N][N])
{
for (int i=0;i<N;i++)
{
int n=0;
for (int j=0;j<N;j++)
if (a[i][j]==1) n++;
if (n!=1)
{
return false;
exit;
}
}
return true;
}
bool judge2(int a[N][N])
{
int n=0;
for (int p=0;p<N;p++)
for (int q=0;q<N;q++)
if (a[p][q]==1)
if(judge(a,p,q)) n++;
if (n==N) return true;
else return false;
}
/*bool compare(int a[N][N],int b[N][N])
{
int i,j,n=0;
for (i=0;i<N;i++)
for (j=0;j<N;j++)
if (a[i][j]==b[i][j]) n++;
if (n=N*N) return true;
else return false;
}*/
void main()
{
cout<<"?????"<<endl;
cout<<" ??????????????,????1850?????,"<<endl;
cout<<"????????????8???,????????,???"<<endl;
cout<<"???????????????,???????????,"<<endl;
cout<<"??????????????"<<endl;
int a[N][N],i,j,k,x,y,p,q,num=0,n;
char kk;
cout<<endl;
cout<<"????"<<N<<"????"<<endl;
cout<<endl;
int array[N][N],quen[N][N],temp[N][N];
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{
array[i][j]=0;
array[i][i]=1;
quen[i][j]=0;
}
int x1,x2,x3,x4,x5,x6,x7,x8;
n=0;
for (x1=0;x1<N;x1++)
for (x2=0;x2<N;x2++)
for (x3=0;x3<N;x3++)
for (x4=0;x4<N;x4++)
for (x5=0;x5<N;x5++)
for (x6=0;x6<N;x6++)
for (x7=0;x7<N;x7++)
for (x8=0;x8<N;x8++)
{
for (i=0;i<N;i++)
{
if (N>=1) quen[0][i]=array[x1][i];
if (N>=2) quen[1][i]=array[x2][i];
if (N>=3) quen[2][i]=array[x3][i];
if (N>=4) quen[3][i]=array[x4][i];
if (N>=5) quen[4][i]=array[x5][i];
if (N>=6) quen[5][i]=array[x6][i];
if (N>=7) quen[6][i]=array[x7][i];
if (N>=8) quen[7][i]=array[x8][i];
}
if ((judge2(quen))&&(judge1(quen)))
{
n++;
cout<<"???"<<n<<"???"<<endl;
for (p=0;p<N;p++)
{
for (q=0;q<N;q++) cout<<quen[p][q];
cout<<endl;
}
cout<<endl;
}
}
cout<<"???"<<n<<"???"<<endl;
cout<<endl;
cin>>kk;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -