Napisz program, który pobiera jako ciąg wejściowy ciąg znaków składający się z drukowalnych znaków (ASCII 20-7E) i liczbę całkowitą n
w [2,16] i wykonuje następującą modyfikację ciągu.
- Każdy znak w ciągu jest konwertowany na kod ASCII (podane przykłady są w systemie szesnastkowym, chociaż podstawa 10 jest również dopuszczalna).
- Kody ASCII są konwertowane na bazę
n
i łączone razem. - Nowy ciąg znaków jest dzielony co drugi znak. Jeśli jest nieparzysta liczba znaków, ostatni znak jest całkowicie usuwany.
- Drukowanie kodów ASCII (w bazie 16) jest konwertowane z powrotem na ich znaki, natomiast niedrukowalne kody ASCII są usuwane.
- Powstały ciąg jest drukowany.
Przypadek testowy
Wkład
Hello, World!
6
Kroki
Hello, World!
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
2002453003003031125222330331030024453
20 02 45 30 03 00 30 31 12 52 22 33 03 31 03 00 24 45
Dane wyjściowe tego programu to E001R"31$E
.
To jest kod golfowy, więc obowiązują standardowe zasady. Najkrótszy kod w bajtach wygrywa.
7
ciągJ
będzie przechodził kolejne krokiJ
->50
->101
->10
->(no output)
, podobnie jak ciągK
lubL
.H
jest ASCII 72 (dziesiętny) lub 48 (szesnastkowy), ale potrzebuję 200 (podstawa 6). Cały wiersz 2 w tym przykładzie jest bezużyteczny i mylący moim zdaniemOdpowiedzi:
Pyth - 22 bajty
Mam nadzieję na golfa o wiele więcej, całkiem proste.
Wypróbuj online tutaj .
źródło
q3l`T
jest wspaniałe.fgTd
powinno wystarczyćCJam, 33 bajty
Pobiera dane wejściowe w formularzu
6 "Hello, World!"
. Sprawdź to tutaj.Zobacz odpowiedź Dennisa na podobne, ale lepsze rozwiązanie z dobrym wyjaśnieniem.
źródło
Bash + wspólne narzędzia linux, 118
źródło
printf %s "$1"
doecho -n "$1"
zaoszczędzić 2 bajty-e
. Spróbujecho -n "-e"
CJam, 24 bajty
Zauważ, że pomiędzy
'
i,
. Występuje znak DEL (0x7F) . Wypróbuj online w interpretatorze CJam .Jak to działa
źródło
DEL
znak z wyniku.JavaScript (ES6), 137
147Korzystanie z najbardziej szczegółowych funkcji dostępnych w JavaScript
źródło
x=>x>=
[for(z of ...)if(...)...]
zamiastmap(...).filter(...)
x=>x>=
nie maJulia, 118 bajtów
Nie golfowany:
źródło
Mathematica, 134 bajty
Jeśli funkcja jest dozwolona:
Mathematica, 112 bajtów
źródło
TeaScript, 23 bajty
TeaScript to JavaScript do gry w golfa
Stosunkowo prosty, ale zachwycająco krótki. Prawdopodobnie mogę zagrać w golfa o kilka innych postaci z kilkoma innymi operatorami. Można także użyć kilku innych nowych funkcji do zmniejszenia niektórych bajtów.
Niegolfowane i objaśnienia
źródło
Rubin 92
Test online tutaj .
źródło
Python 2, 174 bajty
Wypróbuj tutaj
Niezupełnie najlepsze narzędzie do pracy. Ponieważ Python nie ma funkcji konwersji do arbitralnej bazy, musiałem zaimplementować własną. To była co najmniej zabawna - szczególnie znalezienie [nieznacznie] krótszego wyrazu dla cyfr niż
"0123456789ABCDEF"[n%b]
. W przypadku iteracji więcej niż dwóch znaków naraz,while
pętla była nieco krótsza niż podejście funkcjonalne.181 bajtów jako pełny program:
źródło
MATLAB, 103 bajty
Napisałem funkcję k, która przyjmuje ciąg s oraz liczbę całkowitą n jako dane wejściowe. na przykład:
daje
Najbardziej irytującą rzeczą, nad którą musiałem się obejść, jest wyświetlanie zer wiodących podczas konwersji na bazę n . Usunięcie ich z tablicy, która miała zostać podzielona po co 2 znaku, kosztuje sporo bajtów. Nie jestem pewien, czy można zapisać więcej bajtów przy użyciu tego podejścia.
źródło
PHP - 286 bajtów
Wprowadź ciąg
$s
i liczbę całkowitą$b
.Przekaż wartość do
GET["s"]
.źródło