Vielen Dank an FryAmTheEggman für die Idee für diese zweite Version.
Version 1 hier .
Nicht ganz so einfache Herausforderung: Bauen Sie bei einer bestimmten Anzahl von Karten das größte Kartenhaus, das Sie können, mit dieser Anzahl von Karten gemäß der folgenden Baureihenfolge:
/\ /\ /\ /\/\
-- -- -- ---- ----
/\ → /\/\ → /\/\ → /\/\ → /\/\/\ → /\/\/\ → /\/\/\ →
/\ /\
-- -- --
/\/\ /\/\ /\/\
---- ---- ----
→ /\/\/\ → /\/\/\ → /\/\/\/\ → ...
Sie beginnen also mit einem einstöckigen Haus, bauen dann die angrenzende Gruppe, legen dann die Brückenkarte ein, bauen dann die Gruppe im zweiten Stock und beginnen dann, Gruppen und Brücken vom ersten Stock diagonal zu bauen, um den dritten Stock zu erreichen, und so weiter auf.
Eine einzelne Karte wird mit a /, a \oder a dargestellt --. Wenn Sie nach der Verwendung so vieler Karten wie möglich nur noch eine Karte übrig haben, geben Sie einfach das aus, was Sie bisher erreicht haben (siehe Beispiel für 3 Karten, das Ergebnis ist das gleiche wie für 2 Karten). Die einzige Ausnahme ist der Fall einer Karte, die eine flache Karte ausgeben muss.
Beispiele:
Input: 1
Output:
-- <a card lying on the floor>
Input: 2
Output:
/\
Input: 3
Output:
/\
Input: 5
Output:
--
/\/\
Input: 10
Output:
/\
----
/\/\/\
Input: 20
Output:
/\
--
/\/\/\
------
/\/\/\/\
Input: 39
Output:
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
Input: 40
Output:
/\
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
Die Eingabe kann numerisch oder eine Zeichenfolge sein und ist immer eine positive Ganzzahl. Die Ausgabe muss genau wie gezeigt sein, wobei führende und nachfolgende Leerzeichen und Zeilenumbrüche zulässig sind.
Dies ist Code-Golf , also kann das kürzeste Programm / die kürzeste Funktion für jede Sprache gewinnen!