📄 queen.cpp
字号:
#include"iostream"
using namespace std;
void f(int **a,int start_line,int *counter);
void main()
{
int **a=new int*[8];
a[0]=new int[8];
a[1]=new int[8];
a[2]=new int[8];
a[3]=new int[8];
a[4]=new int[8];
a[5]=new int[8];
a[6]=new int[8];
a[7]=new int[8];
int *counter=new int[1];
counter[0]=0;
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
a[i][j]=0;
f(a,0,counter);
}
void f(int **a,int start_line,int *counter)
{
int i,j,x,y;
if(start_line==8)
{
counter[0]++;
//System.out.println("Solution No."+counter[0]+":");
printf("Solution No.%d:\n",counter[0]);
for( i=0;i<8;i++)
{
for(j=0;j<8;j++)
if(a[i][j]==1)
//System.out.print(" Q ");
printf("Q");
else
//System.out.print(" * ");
printf("*");
//System.out.println();
printf("\n");
}
//System.out.println();
printf("\n");
}
else
for( i=0;i<8;i++)
{
if(a[start_line][i]==0)
{
a[start_line][i]=1;
for( x=i+1,y=start_line+1;y<8&&x<8;x++,y++)
a[y][x]=a[y][x]+2;
for(x=i-1,y=start_line+1;y<8&&x>=0;x--,y++)
a[y][x]=a[y][x]+2;
for(x=i,y=start_line+1;y<8;y++)
a[y][x]=a[y][x]+2;
f(a,start_line+1,counter);
a[start_line][i]=0;
for( x=i+1,y=start_line+1;y<8&&x<8;x++,y++)
a[y][x]=a[y][x]-2;
for(x=i-1,y=start_line+1;y<8&&x>=0;x--,y++)
a[y][x]=a[y][x]-2;
for( x=i,y=start_line+1;y<8;y++)
a[y][x]=a[y][x]-2;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -