Zmienna liczba bitów to tablica 0 lub więcej bitów. Podobnie [0, 1]
jest ze zmienną liczbą bitów, ale tak też jest []
.
Napisz funkcję lub program, który przy nieujemnej liczbie całkowitej zwraca zmienną liczbę bitów, dzięki czemu każda liczba całkowita ma odwzorowanie jeden na jeden (bijective) z tablicą.
Istnieje nieskończona ilość takich mapowań, możesz dowolnie je budować, ale musi to być jeden na jeden. Twoje mapowanie musi być koncepcyjnie jeden na jeden dla liczby całkowitej o dowolnym rozmiarze, ale jest OK, jeśli twoja implementacja nie powiedzie się dla dużych liczb całkowitych z powodu ograniczeń liczbowych typów w preferowanym języku (np. C int
).
Przykładem tego, co nie jest mapowaniem jeden na jeden, jest po prostu wyświetlenie cyfr binarnych liczby całkowitej. W takim systemie 5 staje się [1, 0, 1]
(lub 0b101
), ale nie jest to jeden do jednego, ponieważ 0b0101
lub [0, 1, 0, 1]
też oznacza 5.
Powinno być całkiem oczywiste, że mapowanie nie jest jeden do jednego, jeśli pomija liczbę całkowitą (np. Nie działa dla 5), ale chciałbym jasno powiedzieć, że pomijanie zmiennej tablicy bitów również nie jest jednym -do jednego. Musisz odwzorować na każdą możliwą zmienną tablicę bitów, w tym []
.
Najkrótszy kod w bajtach wygrywa.