отказ
Этот вопрос не является дубликатом этого вопроса . Я не считаю конкретные цифры, так как они уже установлены в исходных параметрах. Этот вопрос сосредоточен на десятичных числах, которые могут быть построены из двоичных строк на основе предоставленных цифр.
Вызов
С учетом двух целых чисел X
и Y
, представляющих количество нулей ( 0
) и ones ( 1
) соответственно, вычисляются все возможные десятичные эквиваленты, которые можно определить из создания двоичных строк, используя только предоставленные нули и единицы, и отображают их в качестве выходных данных.
Пример 1:
Входные данные: 0 1
Выход: 1
Объяснение: Только один 1
для учета, который может быть преобразован только одним способом.
Пример 2:
Входные данные: 1 1
Выход: 1,2
Пояснение: 01
конвертирует в 1, 10
конвертирует в 2.
Пример 3:
Входные данные: 3 2
Выход: 3,5,6,9,10,12,17,18,20,24
Пояснение: Три 0
с и два 1
с делают 00011
(3), 00101
(5), 00110
(6), 01001
(9), 01010
(10), 01100
(12), 10001
(17), 10010
(18), 10100
(20), 11000
(24)
Ограничения и правила
- Я только ожидаю, что ваш код будет работать там, где
0 < X + Y <= 16
максимальное число в выводе может быть получено только за 161
с, то есть параметры0
и16
. - В результате вышеприведенного ограничения диапазон чисел, которые мы ожидаем в выводе, от
0
и65535
. - Я приму функции или код, при условии, что будет получен итоговый вывод, будь то список, разделенный запятыми, массив, список, выводимый в STDOUT и т. Д. Единственный критерий, который я должен подчеркнуть, - это то, что он должен быть отсортирован.
- Это код гольфа, минимум байтов получит максимальную славу.
- Мы не потерпим глупых лазеек
0 0
?
0 <= X + Y <= 16
да, потому что 0 0
это будет считаться допустимым вводом, который удовлетворяет этому правилу.
0 0
? Число 0 может быть представлено нулем, одним или несколькими нулями.