`
Eastsun
  • 浏览: 308948 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

八皇后问题的Scala解法

阅读更多
  好久没做过算法题了,那本《算法导论》都堆了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)
    }
}
  • Queen.rar (603 Bytes)
  • 描述: 代码打包
  • 下载次数: 11
分享到:
评论

相关推荐

    scala3 scala3 scala3 scala3 scala3

    Scala3,也被称为Scala 3或Dotty,是Scala编程语言的一个重大更新,旨在提高其简洁性、可读性和类型安全性。Scala3的发布标志着该语言的进一步成熟,它引入了一系列改进,旨在解决早期版本中的一些痛点,同时保持对...

    scala sdk scala-2.12.3

    Scala SDK,全称为Scala Software Development Kit,是用于开发Scala应用程序的核心工具集。Scala是一种多范式的编程语言,融合了面向对象和函数式编程的特点,它运行在Java虚拟机(JVM)上,能够充分利用Java生态...

    8queens:Scala中八皇后问题的实现

    该库为希望使用Scala 3编程语言解决八皇后问题的人们提供了一个起点。 目标受众是刚接触 Scala 并正在寻找练习的人。 主分支包含问题的骨架和必要的构建设置以立即移动。 开始:设置编译环境您需要安装 Java 开发...

    scala2.12.1Windows镜像包

    - **运行和调试**:在Windows环境下,可以通过命令行或IDE运行Scala程序,IDE还提供了调试功能,便于问题定位。 4. **学习与资源**: - **官方文档**:Scala的官方文档是学习语言特性和API的重要来源。 - **在线...

    scala实战高清讲解

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,使得它在处理并发和大数据分析方面...通过阅读这本书,读者不仅能掌握Scala语言的基础,还能了解到如何利用Scala解决实际问题,提升编程技能。

    scala-2.12.10.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。这个"scala-2.12.10.zip"文件是Scala编程语言的特定版本——2.12.10,专为Windows操作系统设计的安装包。Scala 2.12.x系列是该语言的一个...

    scala + mybatis 数据库查询

    Scala是一种强大的多范式编程语言,它结合了面向对象和函数式编程的特性。MyBatis则是一款流行的Java持久层框架,主要用于简化数据库操作。在本项目中,"scala + mybatis 数据库查询",我们将探讨如何将Scala与...

    Scala语法简明教程

    - Stack Overflow:可以找到很多关于Scala的实际问题解答。 - Reddit的r/scala社区:讨论最新的Scala技术和项目。 通过以上内容,我们不仅了解了Scala的历史背景和发展现状,还掌握了Scala的基础语法知识及其与...

    Scala考试题1

    17. **双色球问题**: - 生成红球和蓝球的组合,注意红球有序且不允许重复,蓝球可以重复。 18. **List 拉链操作**: - 使用 `zipWithIndex` 将列表元素与其索引组合,形成新的列表。 19. **Scala 版本 ...

    windows版scala-2.11.12.zip

    通过配置环境变量,用户可以无缝地在Windows环境中编写、编译和运行Scala程序,并进一步探索与Spark的结合,以解决复杂的分布式计算问题。对于想要涉足Scala和Spark开发的初学者,这是一个理想的起点。

    scala学习源代码

    Actors是独立运行的实体,通过消息传递进行通信,从而避免了共享状态和线程安全问题。 在"code"这个文件夹中,你可能会找到一些基本的Scala程序,例如"Hello, World!"示例,或者可能包含一些更复杂的案例,如函数...

    最好的scala学习 课件

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理领域,特别是与Apache Spark相结合时。本课件是针对Scala学习者精心准备的资源,旨在帮助你深入理解和掌握Scala的...

    scala-2.11.12 win msi 安装包

    压缩包中的另一个文件"scala-2.11.12.txt"可能是Scala的安装指南或版本说明,通常会包含安装步骤、系统需求、已知问题等内容,对于首次安装Scala的用户来说非常有用。 总的来说,这个压缩包为Windows用户提供了...

    学习scala好的项目

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理、分布式计算和Web开发等领域。Spark是基于Scala构建的大数据处理框架,其高性能和易用性使得Scala在大数据领域备受...

    scala-2.11.8.rar

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个"scala-2.11.8.rar"压缩包包含了Scala语言的2.11.8版本的源代码,这对于理解Scala的工作原理、学习高级编程技巧以及进行自定义扩展或...

    Scala-2.11.1.zip

    Actors是轻量级的并发实体,通过消息传递进行通信,避免了共享状态的问题。 6. **模式匹配**:Scala的模式匹配允许开发者在代码中解构复杂的对象和数据结构,使其能够优雅地处理多种情况。 7. **类型类**:类型类...

Global site tag (gtag.js) - Google Analytics