Biorąc pod uwagę dodatnią liczbę całkowitą <100 (od 1 do 99, w tym 1 i 99), wyprowadza tyle szafek.
Szafkę definiuje się następująco:
+----+
| |
| |
| |
| nn |
+----+
gdzie nn
jest numer szafki, w bazie 10. Jeśli jest 1-cyfrowy numer, jest on wyrażony przed nim 0. Na przykład szafka numer 2 wyświetla numer 02
.
Szafki można ustawiać jeden na drugim, ale tylko do 2 wysokości:
+----+
| |
| |
| |
| on |
+----+
| |
| |
| |
| en |
+----+
on
oznacza liczbę nieparzystą, liczbę en
parzystą. Szafki można również umieścić obok siebie.
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
Zauważ, że szafka numer 5 to nieparzysta szafka, która znajduje się na dole. Dzieje się tak dlatego, że gdy wprowadzasz nieparzyste dane, ostatnia szafka powinna zostać umieszczona na podłodze (ponieważ unosząca się szafka kosztuje zbyt dużo). Powyższy przykład jest zatem oczekiwaną wydajnością dla n = 5. n = 0 powinno zwrócić nic.
Zasady: Standardowe metody wejścia / wyjścia. Wprowadź w dowolnym dogodnym formacie, wyślij jako ciąg. Obowiązują standardowe luki.
Przypadki testowe:
Input
Output
---------------------
1
+----+
| |
| |
| |
| 01 |
+----+
--------------------- (newlines optional in case 1)
4
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+
| | |
| | |
| | |
| 02 | 04 |
+----+----+
---------------------
5
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
---------------------
16
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 01 | 03 | 05 | 07 | 09 | 11 | 13 | 15 |
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 02 | 04 | 06 | 08 | 10 | 12 | 14 | 16 |
+----+----+----+----+----+----+----+----+
To jest golf golfowy , więc wygrywa najkrótszy kod!
1
?Odpowiedzi:
Pyth , 66 bajtów
Zestaw testowy.
źródło
Python 2,
201191185175171166164163 bajtówWypróbuj online!
źródło
PHP, 191 bajtów
Wypróbuj online!
PHP, 235 bajtów
Przypadek 1 z opcjonalnymi znakami nowej linii
Wypróbuj online!
Rozszerzony
PHP, 300 bajtów
wymienić
["","",""]
ze["\n","\n","\n"]
jeśli chcesz nowe linie dla sprawy1
Wypróbuj online!
źródło
Rubinowy,
256239201191183 bajtówTo jest okropnie długie. Popracuję nad golfem.
źródło
C (gcc) ,
426335300294282252249246244237 bajtówTo naprawdę wymaga gry w golfa
Wypróbuj online!
źródło
-~n/2
zamiastn/2+n%2
Partia, 305 bajtów
+----+
i| |
oba są podobne do+ +
tego, że można je wygenerować za pomocą pojedynczego podstawienia, i okazuje się, że jest nieco krótszy niż generowanie ich osobno (dodatkowe cytowanie wymagane dla|
s nie pomaga).źródło
Pyth -
9774868075 bajtówWypróbuj tutaj
źródło
JavaScript ES6, 224 bajty
Wykorzystałem kilka pomysłów z odpowiedzi Python z matematyki ćpuna
Test Snippet
Oczyszczone
źródło
Węgiel drzewny , 37 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wprowadź liczbę szafek do
q
.Pętla nad szafkami od
1
doq
włącznie.Oblicz kierunek do następnej szafki i powtórz to 5 razy (bardziej golfowo niż za pomocą ruchów skoku).
Narysuj szafkę, zaczynając od lewego dolnego rogu. (Prawy dolny róg zajmuje również 4 bajty, podczas gdy prawy górny róg zajmuje 5. Lewy górny róg zajmuje tylko 3 bajty, ale wtedy numer szafki rysowałby dłużej).
W razie potrzeby narysuj wiodące zero numeru szafki.
Narysuj numer szafki odwrócony i od prawej do lewej, skutecznie uzasadniając go.
Wróć do lewego dolnego rogu, aby obliczyć kierunek do następnej szafki.
Edycja: Późniejsze wersje Charcoal obsługują to 32-bajtowe rozwiązanie:
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Przenieś liczby od
1
na liczbę wejściową łącznie parami. (Jeśli liczba wejściowa jest nieparzysta, ostatnia tablica będzie miała tylko jeden element.)Pętlę nad każdą parą w odwrotnej kolejności.
W razie potrzeby narysuj wiodące zero numeru szafki.
Narysuj numer szafki odwrócony i od prawej do lewej, skutecznie uzasadniając go.
Przejdź do lewej górnej części szafki i narysuj ją. Jest to również dolny lewy róg następnej szafki, więc jesteśmy gotowi narysować drugą szafkę z pary, jeśli dotyczy.
Przejdź do następnej pary szafek. (Powinno to nastąpić przed wewnętrzną pętlą, aby zaoszczędzić 1 bajt, ale węgiel drzewny generuje niepoprawne wyjście dla wejścia 1 z jakiegoś powodu.)
źródło