#include<stdio.h>
#include<stdlib.h>
int place(int);
int X[10];
void main()
{
int i,j,n,k,count=0;
printf("\n\n*************N-QUEEN PROBLEM***************\n\n");
printf("Enter the number of elements:");
scanf("%d",&n);
if(n==0||n==2||n==3)
{
printf("\n\n No solution\n");
printf("\n\n********** ************ **********\n\n");
exit(0);
}
k=1;
X[k]=0;
while(k)
{
X[k]=X[k]+1;
while(X[k]<=n&&!place(k))
X[k]=X[k]+1;
if(X[k]<=n)
{
if(k==n)
{
printf("\nSolution %d\n\n",++count);
for(i=1;i<=n;i++)
{
for(j=1;j<X[i];j++)
printf("*\t");
printf("Q\t");
for(j=X[i]+1;j<=n;j++)
printf("*\t");
printf("\n");
}
}
else
{
k=k+1;
X[k]=0;
}
}
else
k=k-1;
}
printf("\n\n******** ********* *********\n\n");
}
int place(int p)
{
int i;
for(i=1;i<=p-1;i++)
{
if(X[i]==X[p]||abs(i-p)==abs(X[i]-X[p]))
return 0;
}
return 1;
}
OUTPUT:
Enter the number of elements:4
Solution 1
* Q * *
* * * Q
Q * * *
* * Q *
Solution 2
* * Q *
Q * * *
* * * Q
* Q * *
******* ******** ***********






0 comments:
Post a Comment