八皇后问题
原题大意就是棋盘上有八个皇后,但是这八个不能再一直线出现,求各个皇后能够个不伤害的排法
#include<stdio.h>
#include<math.h>
#define max 8
int sum=0,queen[max];
void print()
{
int i,j;
printf("NO:%d\n",++sum);
for(i=0;i<max;i++)
{
for(j=0;j<max;j++)
{
if(j!=queen[i])
printf("0 ");
else
printf("1");
}
}
}
int place(int n)
{
int i;
for(i=0;i<max;i++)
{
if(queen[i]==queen[n]||abs(queen[i]-queen[n])==abs(i-n))
return 1;
}
return 0;
}
void queens(int n)
{
int i;
for(i=0;i<max;i++)
{
queen[n]=i;
if(n==max-1)
print();
else
queens(n+1);
}
}
int main()
{
queens(0);
system("pause");
return 0;
}
各位,近几天将要考试,解题报告可能比较粗糙,请各位见谅。