Існує класичний комбінаторний результат, згідно з яким кількість способів плитки 2*n
смуги 1*2
доміно є n- м числом Фібоначчі. Ваша мета - роздрукувати всі обшивки для даної n
, намальовані штрихами та вертикальними лініями, як ці 8 обрешіток для n=5
:
|————
|————
——|——
——|——
|||——
|||——
————|
————|
||——|
||——|
|——||
|——||
——|||
——|||
|||||
|||||
Ви повинні надати програму або названу функцію, яка приймає n
як введення та друкує необхідний вихід. Виграє найменше байт.
Вхідні дані
Число n
між 1
та 10
включно через STDIN або функціональний вхід.
Вихідні дані
Роздрукуйте всі можливі обшивки доміно до 2*n
смужки, намальовані горизонтально. Обшивка може бути в будь-якому порядку, але кожна повинна з’являтися рівно один раз. Вони повинні бути розділені порожнім рядком.
Вертикальне доміно складається з двох вертикальних брусків ( |
), а горизонтальне доміно - з двох тире ( —
). Ви можете використовувати дефіси ( -
) замість тире, щоб залишитися в ASCII.
З пробілом можна робити все, що завгодно, поки надрукований вихід виглядає однаково.
——
і |
від довжини , як Денніс, а НЕ довжина- n
рядки —
і |
фільтрується —
з'являються парами. І для останнього, я б очікував, що це буде через регулярні вирази або рядкові операції на створеній рядку, як-от s.split('——
) `, а не за допомогою арифметичного підходу, як ваш.