Змінна кількість бітів - це масив 0 або більше біт. Так [0, 1]
є змінна кількість бітів, але так і є []
.
Напишіть функцію або програму, яка, за умови негативного цілого числа, повертає змінну кількість бітів таким чином, що кожне ціле число має однозначне (бієктивне) зіставлення з масивом.
Існує нескінченна кількість таких відображень, ви можете вільно їх скласти, як вам подобається, але це повинно бути однозначно. Ваша карта має концептуально бути однозначною для цілого довільного розміру, але це нормально, якщо ваша реалізація не працює для великих цілих чисел через числові обмеження типів на бажаній мові (наприклад, C int
).
Як приклад того, що не є однозначним відображенням, є просто перелік двійкових цифр цілого числа. У такій системі 5 стає [1, 0, 1]
(або 0b101
), але це не однозначно, тому що 0b0101
або [0, 1, 0, 1]
також означає 5.
Слід бути досить очевидним, що відображення не є однозначним, якщо воно пропускає ціле число (наприклад, воно не працює для 5), але я хотів би дати зрозуміти, що пропуск змінного бітового масиву також не є одним -до одного. Ви повинні зіставити карту до всіх можливих бітових масивів змінної, включаючи []
.
Виграє найкоротший код у байтах.