Inspirowany przez A014486 .
Wyzwanie
Biorąc pod uwagę liczbę całkowitą w bazie 10, konstruuj reprezentację dla binarnego lasu odpowiadającą wartości wejściowej. Reprezentacje obejmują między innymi zagnieżdżone tablice i łańcuchy.
W jaki sposób?
Konwertuj dane wejściowe na binarne. 1
s reprezentują gałęzie, a 0
s przedstawiają liście.
Aby to łatwiej zrozumieć, 834
użyjmy na przykład (1101000010 w wersji binarnej).
Zaczynamy od pierwszej cyfry. Pierwsza cyfra to 1
, więc rysujemy gałęzie:
\ / 1
lub jako tablica, {{1}}
Następna cyfra to 1
, więc rysujemy więcej gałęzi (przechodzimy od lewej do prawej):
\ / 1 \ / 1
lub jako tablica, {{1, {1}}}
Następna cyfra to 0
, więc umieszczamy liść:
0 \ / 1 \ / 1
lub jako tablica, {{1, {1, 0}}}
Następna cyfra to 1
, więc umieszczamy gałąź:
\ / 0 1 \ / 1 \ / 1
lub jako tablica, {{1, {1, 0, {1}}}}
Powtarzając ten proces, otrzymujemy następujące drzewo po 8 cyfrze:
0 0 \ / 0 1 \ / 1 0 \ / 1
lub jako tablica, {{1, {1, 0, {1, 0, 0}}, 0}}
Dla pozostałych cyfr rysujemy więcej drzew:
Dziewiąta cyfra to 0
, więc umieszczamy liść (aww, to młody pęd!)
0 0 \ / 0 1 \ / 1 0 \ / 1 0
lub jako tablica, {{1, {1, 0, {1, 0, 0}}, 0}, 0}
Kiedy używamy wszystkich cyfr, otrzymujemy:
0 0 \ / 0 1 \ / 1 0 0 \ / \ / 1 0 1
lub jako tablica, {{1, {1, 0, {1, 0, 0}}, 0}, 0, {1, 0}}
To wygląda dziwnie, więc wpisujemy zero, aby ukończyć drzewo:
0 0 \ / 0 1 \ / 1 0 0 0 \ / \ / 1 0 1
lub jako tablica, {{1, {1, 0, {1, 0, 0}}, 0}, 0, {1, 0, 0}}
Zauważ, że spłaszczanie tablicy daje pierwotną liczbę w postaci binarnej, ale z dopełnieniem zera.
Kryteria
- Dane wyjściowe muszą wyraźnie pokazywać rozdzielenie drzew i gałęzi (jeśli nie jest to zagnieżdżona tablica, wyjaśnij format wyjściowy).
- Wyodrębnienie wszystkich cyfr z danych wyjściowych musi być identyczne z binarną reprezentacją danych wejściowych (z wypełnionymi zerami z powyższego procesu).
Przypadki testowe
Dane wyjściowe mogą się różnić, o ile spełniają kryteria.
0 -> {0} 1 -> {{1, 0, 0}} 44 -> {{1, 0, {1, {1, 0, 0}, 0}}} 63 -> {{1, {1, {1, {1, {1, {1, 0, 0}, 0}, 0}, 0}, 0}, 0}} 404 -> {{1, {1, 0, 0}, {1, 0, {1, 0, 0}}}} 1337 -> {{1, 0, {1, 0, 0}}, {1, {1, {1, 0, 0}, {1, 0, 0}}, 0}}
Punktacja
To jest golf golfowy , więc wygrywa najmniej bajtów!