Es gibt ein klassisches kombinatorisches Ergebnis, dass die Anzahl der Möglichkeiten, einen 2*n
Streifen mit 1*2
Dominosteinen zu kacheln, die n- te Fibonacci-Zahl ist. Ihr Ziel ist es, alle Kacheln für eine bestimmte zu drucken n
, gezeichnet mit Strichen und vertikalen Linien wie diese 8 Kacheln für n=5
:
|————
|————
——|——
——|——
|||——
|||——
————|
————|
||——|
||——|
|——||
|——||
——|||
——|||
|||||
|||||
Sie müssen ein Programm oder eine benannte Funktion bereitstellen, die n
als Eingabe verwendet und die erforderliche Ausgabe druckt. Wenig Bytes gewinnen.
Eingang
Eine Zahl n
zwischen 1
und 10
einschließlich über STDIN oder Funktionseingang.
Ausgabe
Drucken Sie alle möglichen Domino-Kacheln des 2*n
Streifens horizontal gezeichnet. Die Fliesen können in beliebiger Reihenfolge sein, aber jede sollte genau einmal erscheinen. Sie müssen durch eine Leerzeile getrennt werden.
Ein vertikaler Domino besteht aus zwei vertikalen Balken ( |
) und ein horizontaler Domino besteht aus zwei Strichen ( —
). Sie können Bindestriche ( -
) anstelle von Bindestrichen verwenden, um in ASCII zu bleiben.
Sie können mit Leerzeichen alles tun, solange die gedruckte Ausgabe gleich aussieht.
——
und |
nach Länge wie bei Dennis filtern , nicht Längenfolgen n
von —
und |
gefiltert durch —
paarweises Erscheinen. Und für letzteres würde ich erwarten, dass es über reguläre Ausdrücke oder Zeichenfolgenoperationen für die erzeugte Zeichenfolge erfolgt, wie s.split('——
) `, nicht durch einen arithmetischen Ansatz wie Ihren.