Бит плавает от LSB к MSB, перемещаясь на одну позицию каждый раз, пока не достигнет верхней части контейнера:
0000
0001
0010
0100
1000
Как только один бит всплывает наверх, другой бит начинает свое путешествие и останавливается, когда встречается другой бит:
1001
1010
1100
Это происходит до тех пор, пока контейнер не будет заполнен битами:
1101
1110
1111
Вызов
Учитывая целое число, выведите « Последовательность битов » для контейнера с таким количеством битов.
- Каждый член последовательности может быть отделен любым разделителем по вашему выбору.
- Редактирование : Последовательность должна быть показана в виде десятичной целых чисел, начиная с первыми термами:
0
. - Размер контейнера должен быть больше нуля и вплоть до количества бит самого большого целого числа, поддерживаемого выбранным вами языком. Вы можете предположить, что входные данные всегда соответствуют этому требованию.
Примеры
Требуется только числовая последовательность, двоичное представление показано в качестве примера:
За 1 :
0 1
0 -> 0 1 -> 1
Для 3 :
0 1 2 4 5 6 7
000 -> 0 001 -> 1 010 -> 2 100 -> 4 101 -> 5 110 -> 6 111 -> 7
Для 4 :
0 1 2 4 8 9 10 12 13 14 15
0000 -> 0 0001 -> 1 0010 -> 2 0100 -> 4 1000 -> 8 1001 -> 9 1010 -> 10 1100 -> 12 1101 -> 13 1110 -> 14 1111 -> 15
Для 8 :
0 1 2 4 8 16 32 64 128 129 130 132 136 144 160 192 193 194 196 200 208 224 225 226 228 232 240 241 242 244 248 249 250 252 253 254 255
00000000 -> 0 00000001 -> 1 00000010 -> 2 00000100 -> 4 00001000 -> 8 … … … 11111000 -> 248 11111001 -> 249 11111010 -> 250 11111100 -> 252 11111101 -> 253 11111110 -> 254 11111111 -> 255
[0.0, 1.0]
0 -> [0, 1]