Advertisement

F: 问题 N 皇后 (Queen.cpp, Python)

阅读量:

题目描述

在N*N的棋盘中,需要将N个皇后进行排列(n<=10),确保它们之间不会相互攻击,具体而言,在棋盘的每一行、每一列以及每一条对角线上均不允许出现两个皇后。请编写程序,以求得所有满足条件的摆放方式。

输入

输入值为n

小标题

每种解法单独成行,依次列出各皇后所在列的位置,每个数值占据5个字符的宽度。如若不存在可行解,则输出no solute!

样例输入 Copy

4

样例输出 Copy

复制代码
    2    4    1    3
    3    1    4    2
    
    
复制代码
    a = [0] *20 #盒子
    n = int(input()) # n张牌 n个盒子
    cnt=0
    def dfs(step):
    global a,cnt,n
    #第n+1盒子放牌结束,输出前n个盒子的牌
    if step == n+1:
        cnt+=1
        for i in range(1,n+1):
            print("{:>5}".format(a[i]),end="")
        print()
        return
    # 枚举手中的n张牌
    for i in range(1

全部评论 (0)

还没有任何评论哟~