Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I have java problem :Design and implement a recursive program that solves the no

ID: 3537227 • Letter: I

Question

I have java problem :Design and implement a recursive program that solves the non attacking queens problem.that is,write a program to determine how eight queens can be positioned on an eight by eight chessboard so that none of them are in the same row column or diagonal as any other queen .there are no other chess pieces on the board
Here is a placement of the queens.

the output should look like this :

Q x x x x x x x
x x x x Q x x x
x x x x x x x Q
x x x x x Q x x
x x Q x x x x x
x x x x x x Q x
x Q x x x x x x
x x x Q x x x x

Explanation / Answer

Sample output



Q * * * * * * *

* * * * Q * * *

* * * * * * * Q

* * * * * Q * *

* * Q * * * * *

* * * * * * Q *

* Q * * * * * *

* * * Q * * * *


Q * * * * * * *

* * * * * Q * *

* * * * * * * Q

* * Q * * * * *

* * * * * * Q *

* * * Q * * * *

* Q * * * * * *

* * * * Q * * *


Q * * * * * * *

* * * * * * Q *

* * * Q * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * * Q * * *

* * Q * * * * *


Q * * * * * * *

* * * * * * Q *

* * * * Q * * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *

* * * * * Q * *

* * Q * * * * *


* Q * * * * * *

* * * Q * * * *

* * * * * Q * *

* * * * * * * Q

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *


* Q * * * * * *

* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * * * * Q

* * * * * Q * *

* * * Q * * * *


* Q * * * * * *

* * * * Q * * *

* * * * * * Q *

* * * Q * * * *

Q * * * * * * *

* * * * * * * Q

* * * * * Q * *

* * Q * * * * *


* Q * * * * * *

* * * * * Q * *

Q * * * * * * *

* * * * * * Q *

* * * Q * * * *

* * * * * * * Q

* * Q * * * * *

* * * * Q * * *


* Q * * * * * *

* * * * * Q * *

* * * * * * * Q

* * Q * * * * *

Q * * * * * * *

* * * Q * * * *

* * * * * * Q *

* * * * Q * * *


* Q * * * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * Q * *

* * * * * * * Q

* * * * Q * * *

Q * * * * * * *

* * * Q * * * *


* Q * * * * * *

* * * * * * Q *

* * * * Q * * *

* * * * * * * Q

Q * * * * * * *

* * * Q * * * *

* * * * * Q * *

* * Q * * * * *


* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

Q * * * * * * *

* * Q * * * * *

* * * * Q * * *

* * * * * * Q *

* * * Q * * * *


* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *

* * * * * Q * *


* * Q * * * * *

* * * * Q * * *

* Q * * * * * *

* * * * * * * Q

Q * * * * * * *

* * * * * * Q *

* * * Q * * * *

* * * * * Q * *


* * Q * * * * *

* * * * Q * * *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

* * * Q * * * *

* * * * * * Q *

Q * * * * * * *


* * Q * * * * *

* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *


* * Q * * * * *

* * * * Q * * *

* * * * * * * Q

* * * Q * * * *

Q * * * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * Q * *


* * Q * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * Q * * *

* * * * * * * Q

Q * * * * * * *

* * * * * * Q *

* * * Q * * * *


* * Q * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * * * Q *

Q * * * * * * *

* * * Q * * * *

* * * * * * * Q

* * * * Q * * *


* * Q * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * * * Q *

* * * * Q * * *

Q * * * * * * *

* * * * * * * Q

* * * Q * * * *


* * Q * * * * *

* * * * * Q * *

* * * Q * * * *

Q * * * * * * *

* * * * * * * Q

* * * * Q * * *

* * * * * * Q *

* Q * * * * * *


* * Q * * * * *

* * * * * Q * *

* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * Q * * *

* * * * * * Q *

Q * * * * * * *


* * Q * * * * *

* * * * * Q * *

* * * * * * * Q

Q * * * * * * *

* * * Q * * * *

* * * * * * Q *

* * * * Q * * *

* Q * * * * * *


* * Q * * * * *

* * * * * Q * *

* * * * * * * Q

Q * * * * * * *

* * * * Q * * *

* * * * * * Q *

* Q * * * * * *

* * * Q * * * *


* * Q * * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *


* * Q * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * * * Q

* * * * Q * * *

Q * * * * * * *

* * * Q * * * *

* * * * * Q * *


* * Q * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

* * * Q * * * *

Q * * * * * * *

* * * * Q * * *


* * Q * * * * *

* * * * * * * Q

* * * Q * * * *

* * * * * * Q *

Q * * * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * Q * * *


* * * Q * * * *

Q * * * * * * *

* * * * Q * * *

* * * * * * * Q

* Q * * * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * Q * *


* * * Q * * * *

Q * * * * * * *

* * * * Q * * *

* * * * * * * Q

* * * * * Q * *

* * Q * * * * *

* * * * * * Q *

* Q * * * * * *


* * * Q * * * *

* Q * * * * * *

* * * * Q * * *

* * * * * * * Q

* * * * * Q * *

Q * * * * * * *

* * Q * * * * *

* * * * * * Q *


* * * Q * * * *

* Q * * * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * Q * *

* * * * * * * Q

Q * * * * * * *

* * * * Q * * *


* * * Q * * * *

* Q * * * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * Q * *

* * * * * * * Q

* * * * Q * * *

Q * * * * * * *


* * * Q * * * *

* Q * * * * * *

* * * * * * Q *

* * * * Q * * *

Q * * * * * * *

* * * * * * * Q

* * * * * Q * *

* * Q * * * * *


* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * * Q * *


* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

Q * * * * * * *

* * Q * * * * *

* * * * Q * * *

* * * * * * Q *


* * * Q * * * *

* * * * * Q * *

Q * * * * * * *

* * * * Q * * *

* Q * * * * * *

* * * * * * * Q

* * Q * * * * *

* * * * * * Q *


* * * Q * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * Q * * *


* * * Q * * * *

* * * * * Q * *

* * * * * * * Q

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *

* Q * * * * * *


* * * Q * * * *

* * * * * * Q *

Q * * * * * * *

* * * * * * * Q

* * * * Q * * *

* Q * * * * * *

* * * * * Q * *

* * Q * * * * *


* * * Q * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * * * Q

* Q * * * * * *

* * * * Q * * *

Q * * * * * * *

* * * * * Q * *


* * * Q * * * *

* * * * * * Q *

* * * * Q * * *

* Q * * * * * *

* * * * * Q * *

Q * * * * * * *

* * Q * * * * *

* * * * * * * Q


* * * Q * * * *

* * * * * * Q *

* * * * Q * * *

* * Q * * * * *

Q * * * * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *


* * * Q * * * *

* * * * * * * Q

Q * * * * * * *

* * Q * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * * * Q *

* * * * Q * * *


* * * Q * * * *

* * * * * * * Q

Q * * * * * * *

* * * * Q * * *

* * * * * * Q *

* Q * * * * * *

* * * * * Q * *

* * Q * * * * *


* * * Q * * * *

* * * * * * * Q

* * * * Q * * *

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * Q * *


* * * * Q * * *

Q * * * * * * *

* * * Q * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * * * * Q *

* * Q * * * * *


* * * * Q * * *

Q * * * * * * *

* * * * * * * Q

* * * Q * * * *

* Q * * * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * Q * *


* * * * Q * * *

Q * * * * * * *

* * * * * * * Q

* * * * * Q * *

* * Q * * * * *

* * * * * * Q *

* Q * * * * * *

* * * Q * * * *


* * * * Q * * *

* Q * * * * * *

* * * Q * * * *

* * * * * Q * *

* * * * * * * Q

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *


* * * * Q * * *

* Q * * * * * *

* * * Q * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * * * Q

* * * * * Q * *

Q * * * * * * *


* * * * Q * * *

* Q * * * * * *

* * * * * Q * *

Q * * * * * * *

* * * * * * Q *

* * * Q * * * *

* * * * * * * Q

* * Q * * * * *


* * * * Q * * *

* Q * * * * * *

* * * * * * * Q

Q * * * * * * *

* * * Q * * * *

* * * * * * Q *

* * Q * * * * *

* * * * * Q * *


* * * * Q * * *

* * Q * * * * *

Q * * * * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *

* * * * * * Q *


* * * * Q * * *

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

* * * Q * * * *


* * * * Q * * *

* * Q * * * * *

* * * * * * * Q

* * * Q * * * *

* * * * * * Q *

Q * * * * * * *

* * * * * Q * *

* Q * * * * * *


* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * * * * Q

* * * * * Q * *

* * * Q * * * *

* Q * * * * * *


* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

* * Q * * * * *


* * * * Q * * *

* * * * * * Q *

* Q * * * * * *

* * * Q * * * *

* * * * * * * Q

Q * * * * * * *

* * Q * * * * *

* * * * * Q * *


* * * * Q * * *

* * * * * * Q *

* Q * * * * * *

* * * * * Q * *

* * Q * * * * *

Q * * * * * * *

* * * Q * * * *

* * * * * * * Q


* * * * Q * * *

* * * * * * Q *

* Q * * * * * *

* * * * * Q * *

* * Q * * * * *

Q * * * * * * *

* * * * * * * Q

* * * Q * * * *


* * * * Q * * *

* * * * * * Q *

* * * Q * * * *

Q * * * * * * *

* * Q * * * * *

* * * * * * * Q

* * * * * Q * *

* Q * * * * * *


* * * * Q * * *

* * * * * * * Q

* * * Q * * * *

Q * * * * * * *

* * Q * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * * * Q *


* * * * Q * * *

* * * * * * * Q

* * * Q * * * *

Q * * * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * Q * *

* * Q * * * * *


* * * * * Q * *

Q * * * * * * *

* * * * Q * * *

* Q * * * * * *

* * * * * * * Q

* * Q * * * * *

* * * * * * Q *

* * * Q * * * *


* * * * * Q * *

* Q * * * * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * Q * * *

* * * * * * * Q

* * * Q * * * *


* * * * * Q * *

* Q * * * * * *

* * * * * * Q *

Q * * * * * * *

* * * Q * * * *

* * * * * * * Q

* * * * Q * * *

* * Q * * * * *


* * * * * Q * *

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *


* * * * * Q * *

* * Q * * * * *

Q * * * * * * *

* * * * * * * Q

* * * Q * * * *

* Q * * * * * *

* * * * * * Q *

* * * * Q * * *


* * * * * Q * *

* * Q * * * * *

Q * * * * * * *

* * * * * * * Q

* * * * Q * * *

* Q * * * * * *

* * * Q * * * *

* * * * * * Q *


* * * * * Q * *

* * Q * * * * *

* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * * Q * * * *

* Q * * * * * *

* * * * * * * Q


* * * * * Q * *

* * Q * * * * *

* * * * Q * * *

* * * * * * * Q

Q * * * * * * *

* * * Q * * * *

* Q * * * * * *

* * * * * * Q *


* * * * * Q * *

* * Q * * * * *

* * * * * * Q *

* Q * * * * * *

* * * Q * * * *

* * * * * * * Q

Q * * * * * * *

* * * * Q * * *


* * * * * Q * *

* * Q * * * * *

* * * * * * Q *

* Q * * * * * *

* * * * * * * Q

* * * * Q * * *

Q * * * * * * *

* * * Q * * * *


* * * * * Q * *

* * Q * * * * *

* * * * * * Q *

* * * Q * * * *

Q * * * * * * *

* * * * * * * Q

* Q * * * * * *

* * * * Q * * *


* * * * * Q * *

* * * Q * * * *

Q * * * * * * *

* * * * Q * * *

* * * * * * * Q

* Q * * * * * *

* * * * * * Q *

* * Q * * * * *


* * * * * Q * *

* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * Q * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *


* * * * * Q * *

* * * Q * * * *

* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * Q * * *

* Q * * * * * *

* * * * * * * Q


* * * * * Q * *

* * * Q * * * *

* * * * * * Q *

Q * * * * * * *

* * * * * * * Q

* Q * * * * * *

* * * * Q * * *

* * Q * * * * *


* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *

* * Q * * * * *


* * * * * * Q *

Q * * * * * * *

* * Q * * * * *

* * * * * * * Q

* * * * * Q * *

* * * Q * * * *

* Q * * * * * *

* * * * Q * * *


* * * * * * Q *

* Q * * * * * *

* * * Q * * * *

Q * * * * * * *

* * * * * * * Q

* * * * Q * * *

* * Q * * * * *

* * * * * Q * *


* * * * * * Q *

* Q * * * * * *

* * * * * Q * *

* * Q * * * * *

Q * * * * * * *

* * * Q * * * *

* * * * * * * Q

* * * * Q * * *


* * * * * * Q *

* * Q * * * * *

Q * * * * * * *

* * * * * Q * *

* * * * * * * Q

* * * * Q * * *

* Q * * * * * *

* * * Q * * * *


* * * * * * Q *

* * Q * * * * *

* * * * * * * Q

* Q * * * * * *

* * * * Q * * *

Q * * * * * * *

* * * * * Q * *

* * * Q * * * *


* * * * * * Q *

* * * Q * * * *

* Q * * * * * *

* * * * Q * * *

* * * * * * * Q

Q * * * * * * *

* * Q * * * * *

* * * * * Q * *


* * * * * * Q *

* * * Q * * * *

* Q * * * * * *

* * * * * * * Q

* * * * * Q * *

Q * * * * * * *

* * Q * * * * *

* * * * Q * * *


* * * * * * Q *

* * * * Q * * *

* * Q * * * * *

Q * * * * * * *

* * * * * Q * *

* * * * * * * Q

* Q * * * * * *

* * * Q * * * *


* * * * * * * Q

* Q * * * * * *

* * * Q * * * *

Q * * * * * * *

* * * * * * Q *

* * * * Q * * *

* * Q * * * * *

* * * * * Q * *


* * * * * * * Q

* Q * * * * * *

* * * * Q * * *

* * Q * * * * *

Q * * * * * * *

* * * * * * Q *

* * * Q * * * *

* * * * * Q * *


* * * * * * * Q

* * Q * * * * *

Q * * * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * Q * * *

* * * * * * Q *

* * * Q * * * *


* * * * * * * Q

* * * Q * * * *

Q * * * * * * *

* * Q * * * * *

* * * * * Q * *

* Q * * * * * *

* * * * * * Q *

* * * * Q * * *









Code




public class Queens {


/***********************************************************************

* Return true if queen placement q[n] does not conflict with

* other queens q[0] through q[n-1]

***********************************************************************/

public static boolean isConsistent(int[] q, int n) {

for (int i = 0; i < n; i++) {

if (q[i] == q[n]) return false; // same column

if ((q[i] - q[n]) == (n - i)) return false; // same major diagonal

if ((q[n] - q[i]) == (n - i)) return false; // same minor diagonal

}

return true;

}


/***********************************************************************

* Print out N-by-N placement of queens from permutation q in ASCII.

***********************************************************************/

public static void printQueens(int[] q) {

int N = q.length;

for (int i = 0; i < N; i++) {

for (int j = 0; j < N; j++) {

if (q[i] == j) System.out.print("Q ");

else System.out.print("* ");

}

System.out.println();

}

System.out.println();

}



/***********************************************************************

* Try all permutations using backtracking

***********************************************************************/

public static void enumerate(int N) {

int[] a = new int[N];

enumerate(a, 0);

}


public static void enumerate(int[] q, int n) {

int N = q.length;

if (n == N) printQueens(q);

else {

for (int i = 0; i < N; i++) {

q[n] = i;

if (isConsistent(q, n)) enumerate(q, n+1);

}

}

}



public static void main(String[] args) {

enumerate(8);

}


}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote