八皇后问题的Java程序

源代码在线查看: 八皇后问题的java程序.txt

软件大小: 2 K
上传用户: LOOK1980
关键词: Java 程序
下载地址: 免注册下载 普通下载 VIP

相关代码

				发信人: Tity (云中浪子), 信区: arithmetic 

				标  题: 八皇后问题的Java程序 

				发信站: 幽幽黄桷兰 (2002年07月08日19:41:44 星期一), 站内信件 

				  

				// 火火试一下这个程序的速度如何? 

				// 程序中 d l r 数组分别表示不可放的纵列和左右斜45度列 

				  

				class queen 

				{ 

				  boolean[] d, l, r; 

				  int[] q; 

				  int count; 

				  

				  queen (int n) 

				  { 

				    count = 0; 

				    q = new int[n]; 

				      d = new boolean[n]; 

				      l = new boolean[n + n]; 

				      r = new boolean[n + n]; 

				      Run (0, n); 

				      System.out.print ("Total="); 

				      System.out.println (count); 

				  } 

				  

				  void Run (int i, int n) 

				  { 

				     int k; 

				  

				    for (k = 0; k < n; k++) 

				      { 

				        if (d[k] || l[i - k + n] || r[i + k]) 

				          continue; 

				        d[k] = l[i - k + n] = r[i + k] = true; 

				        q[i] = k; 

				        if (i == n - 1) 

				          count++; 

				        else 

				          Run (i + 1, n); 

				        d[k] = l[i - k + n] = r[i + k] = false; 

				      } 

				  } 

				  

				      } 

				      } 

				  } 

				  

				  public static void main (String arg[]) 

				  { 

				    int n; 

				  

				      n = 8; 

				    if (arg.length >= 1) 

				        n = Integer.parseInt (arg[0]); 

				    new queen (n); 

				  } 

				} 

				-- 

				  

				-- 

				             _ 

				   ---------------+--------------- 

				             ___ /^^[___              _ 

				            /|^+----+   |#___________// 

				          ( -+ |____|   _______-----+/ 

				           ==_________--'            \ 

							

相关资源