(Tytuł dzięki dzięki @ChasBrown)
Tło
To wyzwanie jest inspirowane pytaniem, które niedawno zamieściłem na Puzzling Stack Exchange . Jeśli jesteś zainteresowany pierwotnym pytaniem, skorzystaj z linku. Jeśli nie, to nie zanudzę cię szczegółami tutaj.
Fakty
Każdy standardowy drukowany znak ASCII ma wartość dziesiętną od 32 do 126 włącznie. Można je przekonwertować na odpowiadające im liczby binarne z zakresu od 100000 do 1111110 włącznie. Gdy zsumujesz bity tych liczb binarnych, zawsze uzyskasz liczbę całkowitą od 1 do 6 włącznie.
Wyzwanie
Biorąc pod uwagę liczbę całkowitą od 1 do 6 włącznie jako dane wejściowe, napisz program lub funkcję, która wyświetli w dowolnym akceptowalnym formacie wszystkie standardowe znaki ASCII do wydruku, w których suma bitów ich wartości binarnej jest równa całkowitej liczbie wejściowej.
Przykłady / przypadki testowe
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
Implementacja referencji bez golfisty w Pythonie jest dostępna tutaj (TIO) .
Zasady
- Załóżmy, że wejście zawsze będzie liczbą całkowitą (lub ciągiem reprezentującym liczbę całkowitą) od 1 do 6 włącznie.
- Możesz napisać program do wyświetlania wyników lub funkcję do ich zwrócenia.
- Dane wyjściowe mogą być w dowolnym rozsądnym formacie, ale muszą być spójne dla wszystkich danych wejściowych . Jeśli zdecydujesz się wyprowadzać cytowany ciąg, wówczas dla wszystkich danych wejściowych należy zastosować ten sam typ cudzysłowów.
- Standardowe luki zabronione jak zwykle.
- To jest kod golfowy, więc wygrywa najkrótszy kod w każdym języku.
'
domyślnie używa pojedynczych cudzysłowów ( ) do reprezentacji ciągu znaków, ale używa podwójnych cudzysłowów ( "
), jeśli ciąg zawiera pojedynczy cudzysłów i nie zawiera podwójnych cudzysłowów . Nie chodzi o to, że ten konkretny przypadek będzie miał duże znaczenie, ponieważ prawdopodobnie lepiej jest zwrócić rzeczywisty ciąg zamiast jego reprezentacji, a mimo to możesz używać pojedynczych cudzysłowów w takim ciągu do wprowadzania danych, ale myślę, że warto o tym wspomnieć.
« »
)? : D
63
Vs?
)?