(尽管有超过60个问题标记为下棋,但我们没有简单的n皇后挑战。)
在国际象棋中,N-皇后之谜的描述如下:给定n x n
棋盘和n
皇后,将皇后排列在棋盘上,以使没有两个皇后相互威胁。以下是n = 8
从Wikipedia借来的的示例解决方案。
或者,在ASCII渲染中:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
这里的挑战将是输入n
和输出n
-Queens难题解决方案的ASCII表示形式。由于存在多个可能的解决方案(例如,至少是旋转或反射),因此您的代码仅需要输出任何有效的解决方案。
输入项
n
具有n >= 4
任何方便格式的单个正整数。(n = 2和n = 3没有解,并且n = 1很小,因此将其排除在外)
输出量
如上所述,解决了N-queens难题的结果的ASCII表示形式。您可以选择任何两个不同的ASCII值来表示空格和皇后。同样,可以以任何合适的格式(单个字符串,字符串列表,字符数组等)输出。
规则
- 前导或尾随的换行符或空格以及字符之间的空格都是可选的,只要字符本身正确对齐即可。
- 您既可以使用算法来计算可能的位置,也可以使用显式的“阶梯式”解决方案样式,以哪种方式更适合您的代码。
- 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。
- 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码!
- 禁止出现标准漏洞。
- 这是代码高尔夫球,因此所有常见的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。
例子
n=4
xQxx
xxxQ
Qxxx
xxQx
n=7
xxQxxxx
xxxxxxQ
xQxxxxx
xxxQxxx
xxxxxQx
Qxxxxxx
xxxxQxx
n=10
xxxxQxxxxx
xxxxxxxxxQ
xxxQxxxxxx
xxxxxxxxQx
xxQxxxxxxx
xxxxxxxQxx
xQxxxxxxxx
xxxxxxQxxx
Qxxxxxxxxx
xxxxxQxxxx