Écrivez un programme qui prend en entrée une chaîne composée de caractères imprimables (ASCII 20-7E) et un entier n
en [2,16] et effectue la modification suivante de la chaîne.
- Chaque caractère de la chaîne est converti en son code ASCII (les exemples donnés sont en hexadécimal, bien que la base 10 soit également acceptable).
- Les codes ASCII sont convertis en base
n
et concaténés ensemble. - La nouvelle chaîne est divisée tous les autres caractères. S'il y a un nombre impair de caractères, le dernier caractère est entièrement supprimé.
- Les codes ASCII d'impression (en base 16) sont reconvertis en leurs caractères, tandis que les codes ASCII non imprimables sont supprimés.
- La chaîne résultante est imprimée.
Cas de test
Contribution
Hello, World!
6
Pas
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
La sortie de ce programme est E001R"31$E
.
C'est du golf de code, donc les règles standard s'appliquent. Le code le plus court en octets gagne.
7
, la chaîneJ
passera par les étapesJ
->50
->101
->10
->(no output)
, tout comme la chaîneK
ouL
.H
est ASCII 72 (décimal) ou 48 (hex), mais ce dont j'ai besoin est 200 (base 6). Toute la ligne 2 de l'exemple est inutile et déroutante à mon avisRéponses:
Pyth - 22 octets
J'espère jouer au golf beaucoup plus, assez simple.
Essayez-le en ligne ici .
la source
q3l`T
est merveilleux.fgTd
suffire?CJam, 33 octets
Prend la saisie dans le formulaire
6 "Hello, World!"
. Testez-le ici.Voir la réponse de Dennis pour une solution similaire mais meilleure avec une belle explication.
la source
Bash + Common Linux Utils, 118
la source
printf %s "$1"
enecho -n "$1"
pour économiser 2 octets-e
. Essayezecho -n "-e"
CJam, 24 octets
Notez qu'il y a un caractère DEL (0x7F) entre
'
et,
. Essayez-le en ligne dans l' interpréteur CJam .Comment ça marche
la source
DEL
caractère de la sortie.JavaScript (ES6), 137
147Utilisation des fonctions les plus verbeuses disponibles en JavaScript
la source
x=>x>=
[for(z of ...)if(...)...]
au lieu demap(...).filter(...)
x=>x>=
est partiJulia, 118 octets
Non golfé:
la source
Mathematica, 134 octets
Si une fonction est autorisée:
Mathematica, 112 octets
la source
TeaScript, 23 octets
TeaScript est JavaScript pour le golf
Relativement simple mais délicieusement court. Je peux probablement jouer au golf avec quelques autres opérateurs avec plus d'opérateurs. Quelques autres nouvelles fonctionnalités pourraient également être utilisées pour réduire certains octets.
Ungolfed && Explication
la source
Rubis 92
Test en ligne ici .
la source
Python 2, 174 octets
Essayez-le ici
Pas vraiment le meilleur outil pour le travail. Puisque Python n'a pas de fonction de conversion en base arbitraire, j'ai dû implémenter la mienne. C'était amusant, au moins - en particulier trouver une expression [légèrement] plus courte pour les chiffres que
"0123456789ABCDEF"[n%b]
. Pour itérer sur deux caractères à la fois, j'ai trouvé qu'unewhile
boucle était légèrement plus courte qu'une approche fonctionnelle.181 octets en tant que programme complet:
la source
MATLAB, 103 octets
J'ai écrit une fonction k qui prend une chaîne s et un entier n en entrée. par exemple:
donne
La chose la plus ennuyeuse que j'ai dû contourner est que les zéros apparaissent lors de la conversion en base n . Les retirer du tableau qui devait être divisé après chaque 2ème caractère coûtait beaucoup d'octets. Je ne sais pas s'il est possible d'enregistrer d'autres octets en utilisant cette approche.
la source
PHP - 286 octets
Mettez la chaîne
$s
et l'entier$b
.Passez la valeur à
GET["s"]
.la source