scala 回溯法解决八皇后问题

来源:互联网 发布:windows光盘映像刻录机 编辑:程序博客网 时间:2024/05/28 03:00
object EightQueen extends App{val queenArray = new Array[Int](8)var num = 0def printqueen(){for(i <- 0.until(8);j <- 0.until(8)){if(j == queenArray(i)) print('*') else print('-')if(j == 7) println();}}def cango(x:Int,y:Int):Boolean={for(i <- 0.until(x)){if(queenArray(i) == y) return false;if(i + queenArray(i) == x + y) return false;if(i - queenArray(i) == x - y) return false;}true}def queen(x:Int){for(i <- 0.until(8)){if(cango(x,i)){queenArray(x) = iif(x == 7){num += 1println(num)printqueen()queenArray(x) = (i + 1) % 8return }queen(x + 1)}}}queen(0)}

对比:scala 深搜法解决八皇后问题

参考:回溯法与深度优先遍历的异同

0 0
原创粉丝点击