好久没做过算法题了,那本《算法导论》都堆了N cm的一层灰了-_-
废话不多说了,下面是代码:
/**
&# Queen.scala
八皇后问题的Scala解法
@author Eastsun
@date 2008.5.19
*/
object Queen extends Application{
solve()
/**
列出八皇后问题的92中解法
*/
def solve(){
var count =0
//ls记录了已放皇后的位置(x,y),x表示行,y表示列
def solve(ls:List[(Int,Int)]):Unit = {
if( ls.size == 8 ) printAnswer(ls)
else{
var s =ls.size
for( t <- 0 until 8 )
if(ls.forall(i => {
var (x,y) =i
!(x==s||y==t||x+y==t+s||s-x==t-y)
})) solve((s,t)::ls)
}
}
//打印结果,'o'表示皇后
def printAnswer(an:List[(Int,Int)]){
count += 1
println("\n#Answer "+count)
for(r <- 0 until 8 ){
for(c <- 0 until 8 ) print(if(an(7-r)._2==c) 'o' else 'x')
println()
}
}
solve(Nil)
}
}
分享到:
相关推荐
该库为希望使用Scala 3编程语言解决八皇后问题的人们提供了一个起点。 目标受众是刚接触 Scala 并正在寻找练习的人。 主分支包含问题的骨架和必要的构建设置以立即移动。 开始:设置编译环境您需要安装 Java 开发...
scala-2.12.3 scala-2.12.3 scala-2.12.3 scala-2.12.3
scala 编译工具 sbt 安装包。 Little or no configuration required for simple projects Scala-based build definition that can use the full flexibility of Scala code Accurate incremental recompilation ...
此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是一种思维方式的转变。从原有的面向对象编程(OO)到函数式编程(FP)的思想。本书面向实际的使用场景...
在使用scala的过程中,碰到的问题主要体现在: 1 scala的很多语法糖不理解,不知道为啥要这么写,有种为了这么写的简洁而这么写的感觉 2 scala很多库在设计的时候,不理解原因,包括Option,Collection的很多看似...
scala2.12.1Windows镜像包
scala3 scala3 scala3 scala3 scala3
scala是一个经典的语言,Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。但是现在scala的相关学习资料不多,因此,本人总结了几篇写的较好的scala学习资料,包含<ScalaQuery_Commerzbank_2011><twitter-...
最新制作 scala 2.13.3 API 文档 Html离线版 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。
scala编程 33章 中文pdf Scala编程实战 目录 第1章字符串. 11 第2章数值39 第3章控制结构.60 第4章类和属性.103 第5章方法147 第6章对象170 第7章包和导入.190 第8章特质200 第9章函数式编程214 第10 章集合242 第...
scala编程进阶过程中不可或缺的书籍之一,详细介绍了scala语言的各种中高级语法,对于初学和高级开发人员有很大帮助
最好的scala 学习课件,最好的scala 学习课件,学习spark必备
scala eclipse插件 拷贝到相应的目录即可使用,百度一大堆
快学scala 完整清晰版 大数据spark 主要的编程语言 快学scala 完整清晰版 大数据spark 主要的编程语言
这个打包文件中包含了《SCALA程序设计-JAVA虚拟机多核编程实战》《Scala编程-中文-完整版》《Scala in Action》三本书,足以让你从scala入门到精通,让我们一起愉快的学习吧。spark,scala醉了醉了。哈哈