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