好久没做过算法题了,那本《算法导论》都堆了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)
}
}
分享到:
相关推荐
Scala3,也被称为Scala 3或Dotty,是Scala编程语言的一个重大更新,旨在提高其简洁性、可读性和类型安全性。Scala3的发布标志着该语言的进一步成熟,它引入了一系列改进,旨在解决早期版本中的一些痛点,同时保持对...
Scala SDK,全称为Scala Software Development Kit,是用于开发Scala应用程序的核心工具集。Scala是一种多范式的编程语言,融合了面向对象和函数式编程的特点,它运行在Java虚拟机(JVM)上,能够充分利用Java生态...
该库为希望使用Scala 3编程语言解决八皇后问题的人们提供了一个起点。 目标受众是刚接触 Scala 并正在寻找练习的人。 主分支包含问题的骨架和必要的构建设置以立即移动。 开始:设置编译环境您需要安装 Java 开发...
- **运行和调试**:在Windows环境下,可以通过命令行或IDE运行Scala程序,IDE还提供了调试功能,便于问题定位。 4. **学习与资源**: - **官方文档**:Scala的官方文档是学习语言特性和API的重要来源。 - **在线...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,使得它在处理并发和大数据分析方面...通过阅读这本书,读者不仅能掌握Scala语言的基础,还能了解到如何利用Scala解决实际问题,提升编程技能。
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。这个"scala-2.12.10.zip"文件是Scala编程语言的特定版本——2.12.10,专为Windows操作系统设计的安装包。Scala 2.12.x系列是该语言的一个...
Scala是一种强大的多范式编程语言,它结合了面向对象和函数式编程的特性。MyBatis则是一款流行的Java持久层框架,主要用于简化数据库操作。在本项目中,"scala + mybatis 数据库查询",我们将探讨如何将Scala与...
- Stack Overflow:可以找到很多关于Scala的实际问题解答。 - Reddit的r/scala社区:讨论最新的Scala技术和项目。 通过以上内容,我们不仅了解了Scala的历史背景和发展现状,还掌握了Scala的基础语法知识及其与...
17. **双色球问题**: - 生成红球和蓝球的组合,注意红球有序且不允许重复,蓝球可以重复。 18. **List 拉链操作**: - 使用 `zipWithIndex` 将列表元素与其索引组合,形成新的列表。 19. **Scala 版本 ...
通过配置环境变量,用户可以无缝地在Windows环境中编写、编译和运行Scala程序,并进一步探索与Spark的结合,以解决复杂的分布式计算问题。对于想要涉足Scala和Spark开发的初学者,这是一个理想的起点。
Actors是独立运行的实体,通过消息传递进行通信,从而避免了共享状态和线程安全问题。 在"code"这个文件夹中,你可能会找到一些基本的Scala程序,例如"Hello, World!"示例,或者可能包含一些更复杂的案例,如函数...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理领域,特别是与Apache Spark相结合时。本课件是针对Scala学习者精心准备的资源,旨在帮助你深入理解和掌握Scala的...
压缩包中的另一个文件"scala-2.11.12.txt"可能是Scala的安装指南或版本说明,通常会包含安装步骤、系统需求、已知问题等内容,对于首次安装Scala的用户来说非常有用。 总的来说,这个压缩包为Windows用户提供了...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理、分布式计算和Web开发等领域。Spark是基于Scala构建的大数据处理框架,其高性能和易用性使得Scala在大数据领域备受...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个"scala-2.11.8.rar"压缩包包含了Scala语言的2.11.8版本的源代码,这对于理解Scala的工作原理、学习高级编程技巧以及进行自定义扩展或...
Actors是轻量级的并发实体,通过消息传递进行通信,避免了共享状态的问题。 6. **模式匹配**:Scala的模式匹配允许开发者在代码中解构复杂的对象和数据结构,使其能够优雅地处理多种情况。 7. **类型类**:类型类...