N Queens
N Queens
#include <stdio.h>
#include <stdlib.h>
int main()
int n,i,j;
void queen(int row, int n);
scanf("%d", &n);
queen(1,n);
return 0;
void print(int n)
int i,j;
printf("\t%d", i);
printf("\n\n%d", i);
if(board[i]==j)
printf("\tQ");
else
printf("\t-");
}
}
int i;
if(board[i]==column)
return 0;
else
if(abs(board[i]-column)==abs(i-row))
return 0;
}
return 1;
int column;
if(place(row,column))
board[row]=column;
if(row==n)
print(n);
else
queen(row+1, n);
}
Output:
-N queens problem using backtracking-
solution 1:
1 2 3 4
1 - Q - -
2 - - - Q
3 Q - - -
4 - - Q -
solution 2:
1 2 3 4
1 - - Q -
2 Q - - -
3 - - - Q
4 - Q - -