Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NQueens {
- NQueens(int num){
- n=num;
- }
- static int count1=0;
- static int n;
- static int []grid = new int[20];
- static boolean[]visited_col = new boolean[30];
- static boolean[]diag_right = new boolean[50];
- static boolean[]diag_left = new boolean[50];
- private static void SolveQueen(int row) {
- int loopLimit=n;
- if(row ==0)
- {
- loopLimit = n/2;
- }
- for(int col = 0; col < loopLimit; col++){
- if(!visited_col[col] && !diag_right[row+col] && !diag_left[n+col-row]){
- grid[row] = 1;
- visited_col[col] = true;
- diag_right[col+row] = true;
- diag_left[n+col-row] = true;
- if(row==n-1)
- count1++;
- else
- SolveQueen(row+1);
- grid[row] = 0;
- visited_col[col] = false;
- diag_right[col+row] = false;
- diag_left[n+col-row] = false;
- }
- }
- }
- int count(){
- SolveQueen(0);
- return count1*2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement