Dans une question de stackoverflow maintenant supprimée, quelqu'un a publié ce qui suit:
Écrivez un programme ou une fonction pour imprimer des motifs alternatifs dans *
et #
sur la base d'un entier donné n
. Quelques exemples:
Entrée: n=1
Sortie:
*
n=5
Sortie d' entrée :
*####
###**
***##
###**
*####
Entrée: n=8
Sortie:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
Comme cela ressemblait à un défi de golf de code assez cool, le voici.
Comment ces modèles sont-ils construits?
La première ligne commence par un simple *
, suivi par la n-1
quantité de fin #
.
La deuxième ligne en contient alors deux *
, avec une n-2
quantité de interligne #
.
La troisième ligne commence par trois *
, suivie par la n-3
quantité de fuite #
.
etc.
Une fois que nous avons atteint le milieu ( n/2
), nous comptons à nouveau avec la quantité de *
, qui peut être vue dans les exemples ci-dessus.
REMARQUE: pour les nombres d'entrée impairs, la paire de lignes inversée (donc première et dernière; deuxième et avant-dernière; etc.) sont exactement les mêmes. Dans l' n=5
exemple, les première et dernière lignes sont *####
; l'avant-dernière ligne et l'avant-dernière sont ###**
.
Cependant, pour les nombres en entrée pairs, la paire de lignes inversée est inversée. Dans l' n=8
exemple, les première et dernière lignes sont *#######
et #######*
; l'avant-dernière ligne et l'avant-dernière ligne sont ######**
et **######
; etc.
Règles du défi:
- Vous pouvez utiliser deux caractères imprimables distincts au lieu de
*
et#
. Vous pouvez utiliserA
etB
;3
et7
;<
et>
; etc. Veuillez indiquer dans vos réponses ce que vous avez utilisé. - Vous pouvez supposer que ce
n
sera un entier positif (>= 1
) - Vous êtes autorisé à générer une liste / un tableau de chaînes pour chaque ligne ou une matrice 2D de caractères, au lieu de les imprimer sur STDOUT.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test (du premier n=1
au dernier n=10
)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*