Écrivez un programme ou une fonction qui dessine un arbre d'arbres, construisant ainsi une forêt.
Les arbres sont dessinés comme empilant une pyramide. La première ligne (en haut) contient l' 1
arborescence, la ligne suivante vers le bas contient 2
(pour un total de 3
), la suivante contient 3
(pour un total de 6
), etc. S'il n'y a pas assez d'arbres pour terminer une rangée complète, remplissez-la vers la gauche et laissez les emplacements à droite vides. De plus, les arbres de niveau inférieur chevauchent légèrement les arbres de niveau supérieur en raison de leur emplacement.
Ceci est une forêt de taille 1
/\
//\\
///\\\
||
||
Ceci est une forêt de taille 2
/\
//\\
/\///\\\
//\\ ||
///\\\||
||
||
Ceci est une forêt de taille 3
/\
//\\
/\///\\\/\
//\\ || //\\
///\\\||///\\\
|| ||
|| ||
Ceci est une forêt de taille 4
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\||///\\\
//\\ || ||
///\\\|| ||
||
||
Ceci est une forêt de taille 5
(notez que le sommet du cinquième arbre recouvre le tronc du premier arbre)
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\/\///\\\
//\\ || //\\ ||
///\\\||///\\\||
|| ||
|| ||
(sauter quelques-uns)
Ceci est une forêt de taille 8
(étendant le motif)
/\
//\\
/\///\\\/\
//\\ || //\\
/\///\\\/\///\\\/\
//\\ || //\\ || //\\
/\///\\\/\///\\\||///\\\
//\\ || //\\ || ||
///\\\||///\\\|| ||
|| ||
|| ||
etc.
Contribution
Un entier positif unique dans un format pratique , n > 0
.
Sortie
Une représentation ASCII de la forêt, en suivant les règles ci-dessus. Les sauts de ligne de début / fin ou d'autres espaces sont facultatifs, à condition que tous les arbres s'alignent correctement.
Règles
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
n
, quelles sont les positions des arbres?Réponses:
Haskell 310 octets
Appelez-le avec
w 5
, par exemple.Voici le code non compressé:
la source
JavaScript (ES6),
357297276 octetsEdit: sauvé 21 octets grâce à @KritixiLithos.
la source
repeat
, vous pouvez passerblah.repeat(val)
àblah[w="repeat"]
(val), puis vous pouvez modifier les occurrences suivantes derepeat
juste[w](val)
pour enregistrer des octetsrepeat
est dans lafor
boucle et ne fonctionnera pasn=1
, mais j'ai quand même pu économiser 21 octets.C ++ (sous Windows),
330312308304303 octetsAppeler avec:
la source
C (sous Windows),
297295294 octetsSemblable à ma réponse C ++, mais j'ai posté cela parce qu'il est un peu plus court en C.
la source
#import
est une extension (obsolète) de GCC. Idéal pour le golf, cependant.<stdio.h>
et supposer automatiquement une variable globale à êtreint
ou une fonction à retournerint
.Javascript
418377 octetsMerci à @Kritixi Lithos d'avoir aidé le golf sur 39 octets
Essayez-le en ligne
la source
repeat
, vous pouvez passerblah.repeat(val)
àblah[w="repeat"](val)
puis vous pouvez modifier les occurrences suivantes derepeat
juste[w](val)
pour enregistrer des octets