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. 1s reprezentują gałęzie, a 0s przedstawiają liście.
Aby to łatwiej zrozumieć, 834uż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!