Les haltères de mon gymnase ressemblent à ceci:
=========[]-----------------------[]=========
Ils peuvent contenir des assiettes de cinq tailles différentes, 2,5 livres, cinq livres, dix livres, 25 livres et 45 livres:
.
. ! |
. ! | | |
| | | | |
' ! | | |
' ! |
'
Pour plus de sécurité, nous ajoutons également un clip ]
ou [
à l'extérieur de toutes nos assiettes s'il y en a. La barre elle-même pèse 45 livres. Nous plaçons toujours les assiettes les plus lourdes au plus près du centre, sans espace entre les assiettes, et plaçons des assiettes identiques des deux côtés. Nous utilisons également toujours le nombre minimum d'assiettes possible, par exemple nous n'utilisons jamais deux assiettes de cinq livres sur un côté au lieu d'une seule assiette de dix livres. Donc, si je veux soulever 215 livres, ma barre ressemble à ceci:
. .
.!| |!.
!||| |||!
====]||||[]-----------------------[]||||[====
!||| |||!
'!| |!'
' '
Votre code, une fonction ou un programme complet, doit prendre un entier de 45 à 575, toujours un multiple de 5, et afficher la barre qui correspond à ce poids. Par exemple:
Contribution: 45
Sortie (notez qu'il n'y a pas de clips sur une barre vide):
=========[]-----------------------[]=========
Contribution: 100
Production:
! !
.| |.
======]||[]-----------------------[]||[======
'| |'
! !
Contribution: 575
Production:
..... .....
.!||||| |||||!.
!||||||| |||||||!
]||||||||[]-----------------------[]||||||||[
!||||||| |||||||!
'!||||| |||||!'
''''' '''''
Vous pouvez avoir des espaces de fin sur chaque ligne ou non, mais votre sortie ne peut pas avoir de lignes vides de début ou de fin (la sortie pour 45 doit être une ligne, pour 50 doit être trois lignes, pour 65 doit être cinq lignes, et ainsi de suite.)
C'est le golf de code, le code le plus court gagne!
print
?Réponses:
Pyth, 126 octets
Le code source contient des caractères non imprimables, alors voici un vidage XXD:
Ce code est extrêmement lent , au point d'aucune utilisation réelle. Vous pouvez l'accélérer d'environ 1000 fois en ajoutant un appel
.{
(set
) entre les deux, tout en gardant le code fonctionnellement équivalent. Voici une version conviviale du copier-coller du code résultant:la source
Python 2, 295 octets
Construit la barre verticalement, puis tourne et imprime les lignes non vides.
la source
-v-1
est un candidat de choix pour la négation au niveau du bit;~v
.Fusain , 65 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Imprimer 12
-
s, le[]
et 9=
s. Cela comprend la moitié de la barre. Le curseur est laissé au début du=
s.Soustrayez 45 de l'entrée pour tenir compte du poids de la barre.
Filtrer une liste des poids possibles de paires de poids pour ceux qui ne sont pas supérieurs à l'entrée et répéter tant que la liste n'est pas vide.
Séparez la chaîne
|||.,|.,|!,||.,||!
par des virgules et sélectionnez la pièce correspondant au poids le plus lourd possible, et imprimez-la vers le haut et vers le bas. (Alternativement, il est possible de simplement l'imprimer vers le haut et de réfléchir dans la¬
direction à la fin; un certain nombre de variations ont la même longueur.)Imprimez le clip (sera écrasé par le poids suivant le cas échéant).
Soustrayez le poids de l'entrée.
Réfléchissez pour terminer la barre.
la source