La première ligne est faite avec des ceil(n/2)
éléments où chaque élément est:<space><odd-number><space>
La deuxième ligne est faite avec des ceil(n/2)
éléments, mais chaque élément / \
ne l' est que.
Vous pouvez supposer n >= 0
et n <= 10
.
Exemples
Entrée: 3
1 3
/ \/ \
Entrée: 10
1 3 5 7 9
/ \/ \/ \/ \/ \
Exemple en Python 3, 103 octets:
lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)]))
Le code le plus court en octets gagne :)
<space><odd-number><space>
, mais les cas de test n'ont pas d'espace après le dernier nombre impair. Est-ce facultatif? En outre, la sortie est-elle pourn=0
deux lignes vides?Réponses:
05AB1E ,
19151412 octets05AB1E utilise le codage CP-1252 .
Enregistré 4 octets grâce à Adnan .
Économisé 2 octets grâce à carusocomputing
Essayez-le en ligne!
Explication
la source
Ï
EXISTE-T-IL?! Cela semble super utile.LDÉÏ
est identiqueÅÉ
et„ ýðì
peut être remplacé parðì)»
:).)
, n'est-ce pas?ÅÉðìDg…/ \×»
utiliseDg
au lieu de¹;î
pour un autre octet de sauvegarde également.Pyke, 16 octets
Essayez-le ici!
17 octets et plus génial
Essayez-le ici!
Cela utilise IMHO un algorithme AWESOME pour s'assurer que la première ligne est correctement alignée.
Cela remplace tous les caractères de la liste stringifiée par des espaces.
~B
contient tous les caractères du langage Brain **** et c'est la première fois que j'utilise cette variable.Le programme
`~Bd.:
fait ceci:la source
Python 2, 63 octets
Petite astuce pour la première ligne: elle n'imprime pas les nombres pairs, mais les prend comme une chaîne vide, ce qui conduit à commencer un espace vide (0 serait là), et à doubler les espaces entre les nombres sans aucune modification sur la plage, l'inconvénient est un espace de premier plan dans le nombre pair
n
la source
Python
23,67656360 octetsRien de trop fou ici,
je pense que la première section peut probablement être plus courte mais je ne sais pas trop comment. J'utilise le fait que dans ce cas-~n/2
fonctionnera pourceil
.Vous trouverez ci-dessous des solutions alternatives à 61 et 65 octets dans Python 2:
Merci à Rod pour avoir sauvé 2 octets et à Artyer pour avoir sauvé un autre octet en changeant de version :)
la source
%(tuple(...))
par%[*...]
, mais vous devrez le faire-~n//2
range
à une liste parce que 3range
c'est comme Python 2 dexrange
.tuple()
(*<iterable>,)
du cast pour tuple en Python 3. Cela économise 1 octet bien que vous soyezn/2
devenun//2
Python 3.JavaScript (ES6), 55 octets
Notez l'espace à la fin de la deuxième ligne.
la source
.replace
que ce serait mieux mais je n'ai pas pris la peine de vérifier ...Python 2, 53 octets
Profite de la restriction
n <= 10
pour générer la ligne supérieure en coupant un morceau d'une chaîne codée en dur.Les sorties de 1 à 10 sont
La sortie pour 0 est deux lignes vides.
la source
Vim,
735956 octetsIl s'agit d'un IMO à nombre d'octets très élevé pour ce qui semble être un problème simple. J'ai l'impression de manquer quelque chose d'évident.
Essayez-le en ligne!
Non imprimables:
la source
:s;.;/ \\;g
. 2) sur votre deuxième commande de remplacement, vous pouvez laisser la recherche vide et elle utilisera votre dernière recherche (qui se trouve être la même). En outre,&
est équivalent à\0
et un octet plus court. Vous obtenez donc:s// & /g
Mathematica, 65 octets
Fonction anonyme. Prend un nombre en entrée et renvoie une chaîne en sortie. Les caractères Unicode, respectivement, sont U + 2308 PLAFOND GAUCHE pour
\[LeftCeiling]
et U + 2309 PLAFOND DROIT pour\[RightCeiling]
.la source
WinDbg, 100 octets
La saisie se fait en définissant une valeur dans le pseudo-registre
$t0
.Il semble que ce soit le plus court ici juste pour imprimer la chaîne pendant sa construction plutôt que d'essayer de la construire d'abord et d'afficher le tout. J'aurais une solution plus courte si WinDbg me laissait écrire à l'adresse
0
.Comment ça fonctionne:
Sortie pour chaque valeur de
n
:la source
> <> (FISH),
69606855 octetsCollez-le dans cet interprète en ligne!
Le nombre 5 sur la première ligne est votre valeur d'entrée (codé en dur comme 5, remplacé par 0-a ou i pour l'entrée utilisateur).
Édition 1: Déplacement du nouveau placement de ligne dans le premier espace de ligne (était vide) pour économiser 9 octets au total sur l'espace d'une nouvelle ligne.
Edit 2: Comme indiqué par l'utilisateur7150406, la sortie était incorrecte (pas d'impression d'espaces), cela a été corrigé avec une perte de 8 octets.
Edit 3: complètement changé la logique, il n'y a aucun point à vérifier si le nombre est impair - mettez plutôt tous les nombres sur la pile et supprimez-les tous les deux. Octet économisé 13!
la source
Java,
118112 octetsEdit: 6 octets enregistrés grâce à @peech
Golfé:
Non golfé:
Essai:
la source
i
dans votre première boucle for, cela pourrait ressembler à cecifor(; i < n; i++)
. Vous pouvez jouer au golf encore plus loin avec ce changement: leso += i + " ";
changements verso += i++ + " ";
et pour la boucle deviennentfor(; i < n; )
. C'est si vous voulez conserver la déclaration if. Vous pouvez modifier votre incrément de i eni += 2
et supprimer l'intégralité de l'instruction if, mais dans ce cas, ma deuxième proposition ne s'applique pas :) (ps: je n'ai pas testé cela :))i
initialisation de lafor
boucle, mais les autres choses l'ont bloquée dans une boucle. Je devrais peut-être jouer avec un peu plus :)o += i++ + " ";
:). BTW, vous avez un petit bug dans votre code :) depuis Java utilisefloor()
sur la division entière (4/3 = 1), vous devriez le faire comme ceci:int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }
. si vous augmentez de ii += 2
, vous n'avez pas besoin de cela si l'instruction vérifie la parité. Il enregistre également 3 octets supplémentairesfloor
division bizarrerie moi-même en jouant avec du Java il y a quelques jours :)C # 6, 95 octets
Lambda complet:
la source
CJam,
2623 octetsEssaye-le!
-3 grâce à 8478 (Martin Ender)
la source
Sri,:)2%_S2**N@,"/ \\"*
+
. Et je le jure, j'ai vraiment utiliséed
! ... plus court que Pyth.Game Maker Language (GM 8.0), 97 octets
Étant donné que l'entrée est au maximum de 10,
chr(48+i)
fonctionnera à la place destring(i)
, bien que le nombre d'octets soit le même.Lisible:
la source
Pyth,
2422 octetsMerci à 42545 (ETHproductions) pour -1 octet
Interprète en ligne
11 cas de test
la source
*lK"/ \\
\
place de\\
:)> <> (Poisson)
526362 octetsEssayez-le en ligne!
Pour utiliser il suffit de le placer
n
sur la pile et c'est parti!Une grande partie de cela est tirée de la réponse de @ Teal-Pelican :).
Edit: La sortie n'est en fait pas alignée correctement dans la soumission> <>! Fixation...
Edit2: J'ai dû sacrifier quelques octets, mais la sortie est en fait correcte maintenant.
Edit3: Plus de plaisir avec les
\
/
miroirs et j'économise 1 octet.Production:
la source
C,
1007977 octetsla source
R,
70696858 octetsla source
Frapper,
64,59,57,51,49,48, 45 octetsÉDITER:
-s ""
par-s\
Golfé
Morceau (45 octets):
Fonction (version originale) (57 octets):
Tester
la source
sed
génial. En n'utilisant ni fonction ni printf, vous économisez 10 octets:seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
cat
pour lire l'entrée de STDIN, car IMO il n'est pas vraiment juste d'utiliser une variable prédéfinie pour transmettre les données.$1
n'est que le premier paramètre transmis au programme. Je ne pense pas que ce soit de la triche voir meta.codegolf.stackexchange.com/questions/2447/…Befunge 93 , 64 octets
Essayez-le en ligne!
la source
Ruby
8260 octetsLa solution Ruby rapide et sale pourrait certainement être mieux optimisée si j'étais mieux avec Ruby
Utilisation: prog.rb 10
Sortie:
edit: nombreuses modifications et optimisations par @Manatwork!
la source
print
→$><<
et utilisez l'interpolation de chaînes" #{x} "
. Mais le mieux serait de réduire le nombre d'.each
en sortant la 1ère ligne directement à partir du rappel et la construction de la 2ème ligne dans une variable:s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s
. Ou mêmeputs"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*""
.Numeric#step
accepte 2 paramètres, donc peut éviter la longue syntaxe de plage qui nécessite des parenthèses autour de:(1..$*[0].to_i).step(2)
→1.step($*[0].to_i,2)
.JavaScript (ES6),
6664 octetsConstruit récursivement la première ligne, puis ajoute la seconde. La première ligne est construite avec l'observation que c'est simplement la plage [0 ... n] avec chaque élément n transformé en espace s'il est pair, ou n concaténé avec un espace s'il est impair.
la source
Python 2, 60 octets
6 octets enregistrés grâce à @Kade!
la source
list()
casting, le supprimer vous amène à 60 :)lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"e
parce qu'alors ça donnerait une liste d'ts et ça mourraitLot, 107 octets
la source
Scala,
9995 octetsNon golfé
la source
Rubis, 48 octets
la source
Octave, 45 octets
f=@(n)reshape(sprintf(' /%d \',1:2:n),2,[]);
Test:
f (8)
la source
QBIC , 35 octets
Explication:
la source
Kitanai , 140 octets
la source
Perl, 46 + 2 (
-pl
indicateur) = 48 octetsEn utilisant:
Ou 52 octets:
En utilisant:
la source