(Несмотря на более 60 вопросов, помеченных как шахматы , у нас нет простой задачи для n-ферзей.)
В шахматах головоломка N-Queens описывается следующим образом: учитывая n x n
шахматную доску и n
ферзей, расположите ферзей на шахматной доске так, чтобы никакие две королевы не угрожали друг другу. Ниже приведен пример решения n = 8
, заимствованный из Википедии.
Или в рендеринге ASCII:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
Задача здесь будет заключаться в том, чтобы взять n
и вывести ASCII-представление решения n
головоломки -Queens. Поскольку существует более одного возможного решения (например, как минимум, вращение или отражение), вашему коду нужно только вывести любое допустимое решение.
вход
Один положительное целое число n
с n >= 4
в любом удобном формате . (n = 2 и n = 3 не имеют решений, а n = 1 тривиально, поэтому они исключаются)
Выход
Результирующее ASCII-представление решения головоломки N-Queen, как описано выше. Вы можете выбрать любые два различных значения 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