`
Eastsun
  • 浏览: 304213 次
  • 性别: 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
分享到:
评论

相关推荐

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

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

    scala sdk scala-2.12.3

    scala-2.12.3 scala-2.12.3 scala-2.12.3 scala-2.12.3

    scala-sbt-scala编译工具

    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编程实战.zip

    此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是一种思维方式的转变。从原有的面向对象编程(OO)到函数式编程(FP)的思想。本书面向实际的使用场景...

    Scala函数式编程

    在使用scala的过程中,碰到的问题主要体现在: 1 scala的很多语法糖不理解,不知道为啥要这么写,有种为了这么写的简洁而这么写的感觉 2 scala很多库在设计的时候,不理解原因,包括Option,Collection的很多看似...

    scala2.12.1Windows镜像包

    scala2.12.1Windows镜像包

    scala3 scala3 scala3 scala3 scala3

    scala3 scala3 scala3 scala3 scala3

    scala五本经典资料集合

    scala是一个经典的语言,Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。但是现在scala的相关学习资料不多,因此,本人总结了几篇写的较好的scala学习资料,包含&lt;ScalaQuery_Commerzbank_2011&gt;&lt;twitter-...

    scala 2.13.3 API 文档 Html离线版 scala-api.rar

    最新制作 scala 2.13.3 API 文档 Html离线版 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。

    scala编程中文pdf

    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学习 课件

    最好的scala 学习课件,最好的scala 学习课件,学习spark必备

    eclipse插件 scala下载

    scala eclipse插件 拷贝到相应的目录即可使用,百度一大堆

    快学scala 完整

    快学scala 完整清晰版 大数据spark 主要的编程语言 快学scala 完整清晰版 大数据spark 主要的编程语言

    scala 3本书打包

    这个打包文件中包含了《SCALA程序设计-JAVA虚拟机多核编程实战》《Scala编程-中文-完整版》《Scala in Action》三本书,足以让你从scala入门到精通,让我们一起愉快的学习吧。spark,scala醉了醉了。哈哈

Global site tag (gtag.js) - Google Analytics