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 Xi 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 1do rozliczenia, który można przekształcić tylko w jeden sposób.
Przykład 2:
Wejście: 1 1
Wynik: 1,2
Objaśnienie: 01konwertuje na 1, 10konwertuje na 2.
Przykład 3:
Wejście: 3 2
Wynik: 3,5,6,9,10,12,17,18,20,24
Objaśnienie: Trzy 0i dwa 1s 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 161s, tj. Parametrów0i16. - W wyniku powyższego ograniczenia zakres liczb, których oczekujemy na wyjściu, pochodzi z
0i65535. - 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 <= 16tak, ponieważ 0 0był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.