八皇后GO语言实现

来源:互联网 发布:手机版 淘宝 人工客服 编辑:程序博客网 时间:2024/05/17 22:03
package mainimport ("fmt")const Num int=8var count int=1var quees[Num][Num] intfunc print(){fmt.Printf("第%d种解法:\n",count)for i:=0;i<Num;i++ {for j:=0;j<Num;j++ {if quees[i][j]==1 {fmt.Printf("%s ","■")}else {fmt.Printf("%s ","□")}}fmt.Println()}}func setQueen(row,col int) bool  {if row==0 {quees[row][col]=1return true}for i:=0;i<Num;i++ {if quees[row][i]==1 {return false}}for i:=0;i<Num;i++ {if quees[i][col]==1 {return false}}for i,j:=row,col;i<Num && j<Num;i,j=i+1,j+1 {if quees[i][j]==1 {return false}}for i,j:=row,col;i>=0 && j>=0;i,j=i-1,j-1 {if quees[i][j]==1 {return false}}for i,j:=row,col;i<Num && j>=0;i,j=i+1,j-1 {if quees[i][j]==1 {return false}}for i,j:=row,col;i>=0 && j<Num;i,j=i-1,j+1 {if quees[i][j]==1 {return false}}quees[row][col]=1return true}func solve(row int) {if row==Num {print()count++return}for i:=0;i<Num;i++ {if setQueen(row,i) {solve(row+1)}quees[row][i]=0}}func main() {solve(0)}

0 0
原创粉丝点击