using System;
using System.Collections.Generic; using System.Linq; using System.Text; class dayin { public void print(int[] chess, int N,int o) { Console.WriteLine("第"+o+"种方法:\n"); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (chess[i] == j) Console.Write("*"); else Console.Write("@"); } Console.Write("\n");}
}
}; class dfs { int[] chess=new int[9]; int o=0; public bool check(int k) { for (int i = 0; i < k; i++) { if (Math.Abs(chess[i] - chess[k]) == Math.Abs(i - k) || chess[i] == chess[k]) return false; } return true; } public void DFS(int t,int N) { if (t == N) { o++; dayin da = new dayin(); da.print(chess, N,o);}
else { for (int i = 0; i < N; i++) { chess[t] = i; //dfs che=new dfs(); if (check(t)) { DFS(t + 1,N); } } } return; } }; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { dfs df=new dfs(); df.DFS(0,8); Console.ReadLine(); return ; } } }