/* © MATTO MATTI 2018 http://mattomatti.com/pl/a0133 napisane przy użyciu Visual Studio Community 2015 2018-07-29 v 1.0 */ using System; using System.Collections.Generic; namespace plcode1cs { class Program { static bool czyMoze(ref List dane, int x, int y) { for (int i = 0; i < dane.Count; i++) { int przesx = Math.Abs(i - x); int przesy = Math.Abs(dane[i] - y); if (dane[i] == y || przesx == przesy) return false; } return true; } static int ustawHetmana(ref List dane, int n) { int ile = 0; if (dane.Count == n) { return 1; } else { for (int k = 0; k < n; k++) { if (czyMoze(ref dane, dane.Count, k)) { dane.Add(k); ile += ustawHetmana(ref dane, n); dane.RemoveAt(dane.Count - 1); } } } return ile; } static int szukajRozwiazan(int n) { List dane = new List(); return ustawHetmana(ref dane, n); } static void Main(string[] args) { Console.Write("Podaj wielkość planszy\n n = "); int n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Rozwiązań: {0}", szukajRozwiazan(n)); Console.ReadKey(); } } }