58 lines
1.3 KiB
Java
58 lines
1.3 KiB
Java
import java.util.*;
|
|
public class Nqueens{
|
|
static int n;
|
|
static int[][] board;
|
|
|
|
static boolean isSafe(int r, int c){
|
|
for(int i=0;i<r;i++){
|
|
if(board[i][c]==1)
|
|
return false;
|
|
}
|
|
for(int i=r,j=c;i>=0 && j>=0;i--,j--){
|
|
if(board[i][j]==1)
|
|
return false;
|
|
}
|
|
for(int i=r,j=c;i>=0 && j<n;i--,j++){
|
|
if(board[i][j]==1)
|
|
return false;
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
static void solve(int r){
|
|
if(r==n){
|
|
for(int i=0;i<n;i++){
|
|
for(int j=0;j<n;j++){
|
|
if(board[i][j]==1){
|
|
System.out.print(" Q ");
|
|
}else
|
|
System.out.print(" . ");
|
|
}
|
|
System.out.println();
|
|
}
|
|
System.out.println();
|
|
return;
|
|
|
|
}
|
|
for(int i=0;i<n;i++){
|
|
if(isSafe(r,i)){
|
|
board[r][i] =1;
|
|
solve(r+1);
|
|
board[r][i]=0;
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
public static void main(String[] args){
|
|
Scanner sc= new Scanner(System.in);
|
|
System.out.print("\nEnter n: ");
|
|
n =sc.nextInt();
|
|
board = new int[n][n];
|
|
solve(0);
|
|
sc.close();
|
|
|
|
}
|
|
}
|