博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8皇后问题
阅读量:7062 次
发布时间:2019-06-28

本文共 973 字,大约阅读时间需要 3 分钟。

直接上代码吧,经测试,8皇后时候的答案是92个。

public class EightQueen {	/**	 * @param args	 */	//hits表示有多少个结果	public static int hits = 0;	public static void main(String[] args) {		// TODO Auto-generated method stub		int[] Queen = new int[8];		findQueen(0,Queen);		System.out.print(hits);	}	//Queen[i] = j表示的是在数组的第i行,第j列的位置放置皇后	//得到Queen数组后便可以轻松求出每个皇后的位置	public static void findQueen(int curLine, int[] Queen){		int len = Queen.length;		if(curLine == len ){			hits++;		}else {			//这里看如果把皇后试探性的放在每一列,是否能够符合要求。			for(int i = 0; i < len; i++ ){				boolean canPut = true;				Queen[curLine] =i ;				for(int j = 0; j < curLine;j++){					//看看放在某一列时候,是否在这一行之前的皇后,与这一行有冲突										if(Queen[curLine] == Queen[j]||Queen[curLine]- Queen[j] == curLine - j|| 							Queen[curLine]- Queen[j] == j - curLine							){						canPut = false;						break;					}				}				//如果能够符合要求,接着进行递归				if(canPut){					findQueen(curLine + 1, Queen);				}							}		}			}}

  

转载于:https://www.cnblogs.com/dongqiSilent/p/3437272.html

你可能感兴趣的文章
超燃!Apache Flink 全球顶级盛会强势来袭
查看>>
约你一起来写作
查看>>
修改arcgis infowindow 放大和缩小的模板
查看>>
ASP.NET 2.0+Atlas编写鼠标拖放程序(2)
查看>>
JavaScript返回上一页代码区别
查看>>
EntityFramework 如何进行异步化(关键词:async·await·SaveChangesAsync·ToListAsync)
查看>>
百度编辑器ueditor每次编辑后多一个空行的解决办法
查看>>
C#扇形的绘制与Hittest交互、图种制作
查看>>
【MVC 4】5.SportsSore —— 一个真实的应用程序
查看>>
Lucene.Net:构造搜索表达式简化搜索
查看>>
Hadoop - Zeppelin 使用心得
查看>>
Android GIS开发系列-- 入门季(2) MapView与图层介绍
查看>>
爪哇国新游记之二十五----图及其遍历查找
查看>>
Windows Live Writer Technical Preview 公布下载
查看>>
iphone:使用NSFileManager取得目录下所有文件(遍历所有文件)
查看>>
IPK僵尸网络 看看其传播手法
查看>>
Visual Studio DSL 入门 14---用Wix制作安装程序
查看>>
SQL Server 各种查询语句执行返回结果
查看>>
Visual Studio 2017 针对移动开发的新特性介绍
查看>>
自定义Notification
查看>>