public class NQueenProblem { final int N = 4; void printSolution(int board[][]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) System.out.print(" " + board[i][j] + " "); System.out.println(); } } boolean isSafe(int board[][], int row, int col) { int i, j; for (i = 0; i < col; i++) if (board[row][i] == 1) return false; for (i = row, j = col; i >= 0 && j >= 0; i--, j--) if (board[i][j] == 1) return false; for (i = row, j = col; j >= 0 && i < N; i++, j--) if (board[i][j] == 1) return false; return true; } boolean solveNQUtil(int board[][], int col) { if (col >= N) return true; for (int i = 0; i < N; i++) { if (isSafe(board, i, col)) { board[i][col] = 1; if (solveNQUtil(board, col + 1) == true) return true; board[i][col] = 0; } } return false; } boolean solveNQ() { int board[][] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; if (solveNQUtil(board, 0) == false) { System.out.print("Solution does not exist"); return false; } printSolution(board); return true; } public static void main(String args[]) { NQueenProblem Queen = new NQueenProblem(); Queen.solveNQ(); } }