Twoim zadaniem jest wypełnić wiadro liczbami do danych wejściowych.
Zasady
Liczby zajmują pozycję od lewej do prawej, następnie od prawej, następnie od lewej i tak dalej.
Po przepełnieniu liczby zaczynają gromadzić się wokół wiadra w podobny sposób. Zajmują pozycję po przekątnej.
Przykłady powinny jasno określać oczekiwany wynik (niektóre reguły są wymienione w przykładach).
Aby uzyskać więcej niż 10, użyj prawej cyfry
Przykłady:
The bucket:
| | or | |
| | | |
| | | |
| | | |
|------| |______|
input:1 (You can start from either 0 or 1)
output:
| | (There can be whitespace to the left even if there is no overflow
| | but the bucket must not be distorted.)
| |
|1 |
|------|
input:6
output:
| |
| |
| |
|135642|
|------|
input:8
output:
| |
| |
|7 8|
|135642|
|------|
input:23
output:
|913 20|
|357864|
|791208|
|135642|
|------|
input:27
output:
|913420|
|357864|
|791208|
|135642|
75|------|6
input:30
output:
|913420|
|357864|
|791208|
9|135642|0
75|------|68
input:40
output:
|913420|
|357864|
5|791208|6
939|135642|040
7175|------|6828
input:54 (Maximum input for start=1)
3|913420|4
13|357864|42
915|791208|620
7939|135642|0408
57175|------|68286
To jest golf golfowy, więc wygrywa najkrótszy kod.
|024531|
Dla ), czy tylko dane wejściowe?Odpowiedzi:
JavaScript (Node.js) ,
145143 bajtówWzorzec zakodowany na sztywno (więcej tutaj matematyki).
1-indeksowany.
Wypróbuj online!
Zaoszczędzono 2 bajty dzięki @tsh
źródło
/[^\s|-]/
->/[0-z]/
JavaScript (ES6),
144 ... 139137 bajtówPodejście matematyczne (patrz tutaj mniej matematyki).
0-indeksowane.
Wypróbuj online!
W jaki sposób?
Wyjście jest budowane znak po znaku, przy czymy zmniejsza się z 4 do 0 a x wzrasta od 0 do 18 w każdym rzędzie.
Definiujemy:
Pisząc pełne wartości, a nie tylko cyfry jednostki, otrzymujemy następującą tabelę:
Ta tabela jest zasadniczo symetryczna w poprzek osi y, z tym wyjątkiem, że wartości po lewej stronie są parzyste, a wartości po prawej stronie są ich nieparzystymi odpowiednikami.
Definiujemy:
Do każdej komórki dołączamy:
Skomentował
źródło
Python 2 , 170 bajtów
Wypróbuj online!
źródło
Java 10, 168 bajtów
Port odpowiedzi JavaScript na @Arnauld (więc również zindeksowany 1 i wysyłany
-
jako bottom). Jeśli podoba ci się ta odpowiedź, pamiętaj, aby go zagłosować!Wypróbuj online.
Wyjaśnienie:
źródło
Kod maszynowy 6502 (C64), 130 bajtów
Wykorzystuje zmodyfikowaną wersję „wstępnie sformatowanego” podejścia do niektórych innych odpowiedzi. Zawiera pełny ciąg segmentu, ale cyfry są zastępowane wartościami zaczynającymi się od
0xC1
, a wszelkie znaki do drukowania bezpośredniego znajdują się w zakresie0x01
-0x7f
.Zestaw znaków C64 nie zawiera
|
znaku potoku ( ), dlatego został zastąpiony przez wyglądający podobnie znakiem PETSCII0x7d
.Demo online
Stosowanie:
SYS49152,[n]
(1-indeksowane, npSYS49152,54
Do pełnego wyjścia)Skomentowany demontaż :
źródło
Węgiel drzewny , 64 bajty
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wpisz liczbę.
Narysuj połowę wiadra, a następnie wykonaj odbicie lustrzane, aby uzupełnić wiadro.
Pętla po każdej stronie wiadra.
Odbij wiadro, abyśmy mogli narysować spójny kierunek na obu pętlach i przeskocz do pozycji pierwszej cyfry po tej stronie wiadra.
Pętla nad liczbą cyfr po tej stronie wiadra.
Wydrukuj następną cyfrę i przesuń kursor w górę i w lewo.
Dostosuj pozycję kursora, odczytując przesunięcia z dwóch skompresowanych łańcuchów,
003003003005203004000500
(przesunięcia w poziomie) i11011011011510200300040000
(przesunięcia w pionie). Przesunięcia te uwzględniają powyższy ruch kursora, co dogodnie oznacza, że nigdy nie muszą być ujemne.źródło