package set_probleme_1; import java.util.*; import java.io.*; /** * Program for detecting all solutions posible for putting on nxn table n shifts, but these to not attack each other. * @author Dan * */ public class problema_3b { public static Scanner in = new Scanner(System.in); public static String n; public static String a = "1"; public static void main(String[] args) throws IOException { Input(); perm1("",a); } /** * Input a number from keyboard */ private static void Input() { int[] array = new int[10]; int z,fact; System.out.print("Introduceti n x n dimesiunea a mesei de Sah: "); n=in.next(); z=Integer.parseInt(n); fact=factorial(z); System.out.printf("Cazuri posibile sunt :%d \n",fact); for(int i=0;i<z;i++) { array[i]=i+1; } for(int i=2;i<=z;i++) { a = a + Integer.toString(i); } } /** * Permutation alorithm * @param prefix Prefix on each printing of solutions * @param s String what characters will be permuted */ private static void perm1(String prefix, String s) { int i =0; int N = s.length(); if (N == 0) System.out.println(prefix); else { for (i = 0; i < N; i++) { perm1(prefix + s.charAt(i), (s.substring(0, i) + s.substring(i+1, N))); } } } /** * Function for calculating factorial of number * @param n number to be factorialized * @return number already factorialized */ public static int factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); } }