Tous les crédits à Adnan pour avoir relevé ce défi.
Mon dernier défi, avant de partir en pause .
Tâche
Étant donné un entier positif n
, s'il n
est impair, répétez /
cela plusieurs fois; si n
c'est pair, répétez \
cela plusieurs fois.
(Sérieusement, les cas de test seraient beaucoup plus clairs que cette description, alors regardez simplement les cas de test.)
Spécifications
- Tout format d'entrée / sortie raisonnable.
- Des échappatoires standard s'appliquent.
Cas de test
n output
1 /
2 \\
3 ///
4 \\\\
5 /////
6 \\\\\\
f=n=>...
, vous pouvez appeler directement le:(n=>...)(5)
. (Ou si vous utilisez le Node.js REPL, alors vous pouvez utiliserthis._
, ce qui représente la dernière chose entrée)Python, 20 octets
la source
05AB1E / 2sable ,
151198 octets-2 octets grâce à Leaky Nun
-1 octet grâce à Emigna
Essayez-le en ligne! en 05AB1E
ou en 2sable
la source
sè×
😮"/\"
peut être „/ \Perl, 20 octets
Comprend +1 pour
-p
Exécuter avec entrée sur STDIN:
squigly.pl
la source
-p
option? J'utilise;
dans la translittération exactement parce qu'il y-p
a un implicite;
à la fin du code pour que je puisse économiser 1 octet de plus. Cela fonctionne depuis au moins Perl 5.6 (probablement aussi longtemps que l'-p
option existe);
ajout par-p
est assez géniale, bien faite.Rétine , 21
Essayez-le en ligne (première ligne ajoutée pour permettre l'exécution de plusieurs tests).
la source
C #, 42 octets
Sélectionne le caractère correct, puis crée une nouvelle chaîne composée de ce caractère répété plusieurs
n
fois.la source
PHP, 38 octets
(variante 38 octets)
(variante 38 octets)
(variante 40 octets)
la source
C, 40 octets
Essayez-le sur Ideone
la source
putchar(92-n%2*45)
est de la même longueur.Gelée , 5 octets
Essayez-le en ligne! ou Vérifiez tous les cas de test.
la source
Ø^
c'est un octet plus court que⁾/\
.J, 10 octets
Il s'agit d'un verbe à six trains, composé de:
Ceci est un crochet entre
#
et('\/' {~ 2 | ])
; un crochet se(f g) y
développe eny f (g y)
, donc cela se développe eny # (... y)
, ce qui, pour les caractères uniques, produit une liste dey
caractères.La deuxième partie est un 5 trains, composé de:
Cela équivaut à deux fourches:
La fourche intérieure,,
2 | ]
est le module deux. La fourche extérieure est donc:Qui prend (
{~
) l'index mod2 (mod2
) de la chaîne/
.Ensuite, en utilisant le crochet d'en haut:
Cela donne ce que nous voulons, et nous avons terminé.
la source
Haskell, 25 octets
-1 octet merci à Damien avec
cycle
.la source
f n=cycle"\\/"!!n<$[1..n]
Mathematica,
343228 octetsFonction anonyme. Prend un entier en entrée et renvoie une liste de caractères en sortie.
la source
~Table~#
.<>""
et renvoyer une liste de personnages.~Do~Infinity
et tels dans 10.2+ aussi ...Powershell,
3027 octetsMise à jour:
Passer à
param
, grâce à timmyd .ou légèrement plus lisible
Tester:
la source
param($n)
au lieu de$args
, comme suit pour 27 octets -param($n)('\','/')[$n%2]*$n
Mathematica, 29 octets
Cruelly exploite le fait que
[[1]]
renvoie le premier argument d'une fonction tandis que[[0]]
renvoie la fonction (head) elle-même, appliquée à la fonction étrangement valide nommée"\\"
qui est "évaluée" à"/"
.la source
a[b]
n'est qu'une expression générique avec heada
(index0
) et elementb
(index1
), et les fonctions ne sont que des types spéciaux d'expression (en fait, il serait plus correct de dire que les fonctions ne sont pas '' t expressions, mais ne sont que des règles pour transformer des expressions qui ont généralement une formef[x...]
). :)Rubis, 15 octets
Voir sur eval.in: https://eval.in/632030
la source
Fourier, 27 octets
Essayez-le en ligne!
la source
Brachylog , 15 octets
Essayez-le en ligne!
Explication
la source
CJam , 9 octets
Essayez-le en ligne!
Explication
la source
> <> (Poisson), 30 octets
Première utilisation de ce langage, mais je pense qu'au moins j'ai économisé un peu de place en utilisant conditionnellement le / comme partie de la sortie ou un miroir pour rediriger le flux. Probablement encore horriblement inefficace, j'ai l'impression que cela pourrait probablement être réduit un peu plus au moins.
L'entrée est la pile initiale, la sortie est
stdout
Essayez-le en ligne!
la source
Dyalog APL , 11 octets
Requiert
⎕IO←0
ce qui est par défaut sur de nombreux systèmes.⊢
l'argument⍴
remodèle (répète)'\/'⊃⍨
la chaîne "/" sélectionnée par2|⊢
le reste de la division lorsque l'argument est divisé par deuxTryAPL en ligne!
la source
Java 7,
6865 octets3 octets enregistrés grâce à @ user902383 et @SeanBean .
Tout comme avec cette réponse , le code-golf le plus court semble boucler et s'imprimer. Les deux récursifs et
void c(int i){System.out.print(new String(new char[i]).replace("\0",i%2<1?"\\":"/"));}
semblent être plus longs.
Code non testé et testé:
Essayez-le ici.
Sortie:
la source
x=-1;++x<i
àx=0;x++<i
vous pouvez réduire d'un octet"\\" : "/"
par92:'/'
;)R,
4746 octetsDans R, vous devez échapper aux barres obliques inverses. l'argument
sep
doit également être entièrement spécifié car il vient après...
. Ainsi, peu d'occasions de sauver les caractères :(Merci à bouncyball d'avoir joué un octet au golf.
la source
n=scan();cat(rep(c('\\','/')[n%%2+1],n),sep='')
T-SQL 50 octets
Bien sûr que non
STDIN
ici, supposons donc uneINT
variable codée en dur comme ceci:DECLARE @ INT
alors la solution est:la source
Pip , 8 octets
Simple. Utilise l'indexation modulaire pour sélectionner le caractère et la répétition de chaîne pour le multiplier. Essayez-le en ligne!
Cette question présente une comparaison intéressante entre Pip, Pyth et Jelly , les deux derniers ayant chacun marqué 5 octets. Les trois langues ont une sortie implicite, avec des opérateurs à caractère unique pour l'indexation modulaire et la répétition de chaînes, et aucune obligation d'échapper les barres obliques inverses dans les chaînes. Il existe cependant deux différences clés:
Aucune de ces fonctionnalités ne devrait apparaître dans Pip 1 (je n'aime pas l'esthétique des délimiteurs non équilibrés, et la syntaxe sans point ou les opérandes implicites semblent être trop étrangers à mon analyseur d'expression d'infixe), mais je '' m d'accord avec jouer le troisième violon. Même si la "lisibilité" est extrêmement relative lors du golf, je dirais que ces trois octets supplémentaires rendent le programme Pip beaucoup plus facile à comprendre en un coup d'œil - et dans mon livre, c'est un compromis valable.
1 Bien que les chaînes à caractère unique dans Pip utilisent un seul
'
délimiteur, inspiré de CJam et des citations en Lisp.la source
code golf
:! =golflang design
. Vous pouvez maintenant affirmer que le même principe (plus court est toujours meilleur) s'applique également à la conception de langage. Je dis juste que pour moi, l'utilisabilité et même l'esthétique sont des considérations.Pyth , 5 octets
Suite de tests.
Indexation modulaire dans la chaîne
\/
, puis répétez.la source
Perl 6 , 16 octets
Usage:
la source
Julia, 20 octets
la source
SpecBAS - 28 octets
ODD
retourne 1 si le nombre est impair, puis l'utilise comme index pour imprimer le bon caractère n nombre de fois. Vous devez ajouter 1 car les chaînes SpecBAS commencent au caractère 1.la source
Java 8, 56 octets
Je voudrais remercier @Kevin Cruijssen à l'avance pour avoir approfondi ma réponse.
Programme de test non golfé
la source
En fait, 10 octets
Suggestions de golf bienvenues. Essayez-le en ligne!
Comment ça marche
la source