ddd

ddd
 avatar
unknown
java
2 years ago
1.5 kB
5
Indexable
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;
	}
	 
	 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();
	 }
	 
	 public static void enumerate(int n) 
	 {
	      int[] a = new int[n];
	      enumerate(a, 0);
	 }
	 
	 public static void enumerate(int[] q, int k) 
	 {
	 
	      int n = q.length;
	      if (k == n)
	          printQueens(q);
	      else 
	      {
	          for (int i = 0; i < n; i++) 
	          {
	               q[k] = i;
	               if (isConsistent(q, k))
	               {
	                    enumerate(q, k + 1);
	               }
	            		   
	          }
	      }
	      
	 }
	 public static void main(String[] args) 
	 {
	     int n = 8;
	     enumerate(n);
	 

	 
	 }
Editor is loading...