Scrivi un programma che accetta come input una stringa composta da caratteri stampabili (ASCII 20-7E) e un numero intero n
in [2,16] ed esegue la seguente modifica alla stringa.
- Ogni carattere nella stringa viene convertito nel suo codice ASCII (gli esempi forniti sono in esadecimali, sebbene anche la base 10 sia accettabile).
- I codici ASCII vengono convertiti in base
n
e vengono concatenati insieme. - La nuova stringa è divisa ogni altro carattere. Se è presente un numero dispari di caratteri, l'ultimo carattere viene rimosso completamente.
- I codici ASCII di stampa (nella base 16) vengono riconvertiti nei loro caratteri, mentre i codici ASCII non stampabili vengono rimossi.
- La stringa risultante viene stampata.
Caso di prova
Ingresso
Hello, World!
6
passi
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
L'output di questo programma è E001R"31$E
.
Questo è il golf del codice, quindi si applicano le regole standard. Vince il codice più breve in byte.
7
, la stringa J
dovrebbe passare attraverso i passaggi J
-> 50
-> 101
-> 10
-> (no output)
, così come la stringa K
o L
.
H
è ASCII 72 (decimale) o 48 (esadecimale), ma ciò di cui ho bisogno è 200 (base 6). Tutta la riga 2 nell'esempio è inutile e confusa secondo me