Zrzeczenie się
To pytanie nie jest duplikatem tego pytania . Nie liczę konkretnych cyfr, ponieważ mamy już ustawione w parametrach początkowych. To pytanie koncentruje się na liczbach dziesiętnych, które można zbudować z ciągów binarnych na podstawie podanych cyfr.
Wyzwanie
Biorąc pod uwagę dwie liczby całkowite X
i Y
, odpowiednio, reprezentujące liczbę zer ( 0
) i jedynek ( 1
), oblicz wszystkie możliwe ekwiwalenty dziesiętne, które można określić na podstawie tworzenia ciągów binarnych przy użyciu tylko podanych zer i jedynek, i wyświetl je jako dane wyjściowe.
Przykład 1:
Wejście: 0 1
Wynik: 1
Objaśnienie: Tylko jeden 1
do rozliczenia, który można przekształcić tylko w jeden sposób.
Przykład 2:
Wejście: 1 1
Wynik: 1,2
Objaśnienie: 01
konwertuje na 1, 10
konwertuje na 2.
Przykład 3:
Wejście: 3 2
Wynik: 3,5,6,9,10,12,17,18,20,24
Objaśnienie: Trzy 0
i dwa 1
s tworzą 00011
(3), 00101
(5), 00110
(6), 01001
(9), 01010
(10), 01100
(12), 10001
(17), 10010
(18), 10100
(20), 11000
(24)
Ograniczenia i zasady
- Spodziewam się, że twój kod będzie działał tylko tam
0 < X + Y <= 16
, gdzie maksymalna liczba w danych wyjściowych może wystąpić tylko z 161
s, tj. Parametrów0
i16
. - W wyniku powyższego ograniczenia zakres liczb, których oczekujemy na wyjściu, pochodzi z
0
i65535
. - Akceptuję funkcje lub kod, tak długo, jak Wynikiem jest, czy to będzie lista oddzielonych przecinkami, tablica, lista wyprowadzane do STDOUT, itd. Jedynym kryterium Muszę podkreślić o wyjście jest to, że musi być sortowane.
- To jest kod golfowy, minimalne bajty otrzymają maksymalną sławę.
- Nie będziemy tolerować głupich luk
0 0
?
0 <= X + Y <= 16
tak, ponieważ 0 0
byłoby uważane za prawidłowe dane wejściowe, które spełniają tę zasadę.
0 0
? Liczba 0 może być reprezentowana przez zero, jeden lub więcej zer.