eh bien, c'est quelque chose de similaire à cette question mais avec quelques petites différences. vous devez écrire un programme pour demander la largeur de la barre de progression et la quantité de travail effectuée. puis dessinez une barre de progression avec les fonctionnalités suivantes:
La largeur indique le nombre de caractères à utiliser pour dessiner la barre de progression
la progression est donnée via une valeur à virgule flottante entre 0..1.
le premier et le dernier caractère de la barre de progression doivent être différents de tous les autres caractères, par exemple "[" et "]"
votre programme doit utiliser deux caractères différents pour savoir combien de progrès sont passés depuis le début
vous devez écrire combien de travail est effectué en plein milieu de la barre de progression, en utilisant un nombre décimal + signe "%".
point bonus pour la gestion des intrants extrêmes, tels que 150% ou -5% de travail effectué.
marquant le nombre de caractères * (1 sans bonus ou 0,75 largeur bonus)
quelques exemples de sorties valides
79 0.15
[|||||||||||| 15% ]
25 0.76
[##########76%#####.....]
39 -0.12
[ -12% ]
25 7.6
[##########760%#########]
la source
Réponses:
PHP 84 x 0,75 = 63
Edit: Une version moins 'jolie', mais elle devrait être valide selon les règles:
Production:
Original (98 x 0,75 = 73,5)
Production:
la source
J, 78 × 0,75 = 58,5
(Les nombres négatifs dans J sont préfixés par
_
, non-
. Heureusement, dyadic".
peut analyser les deux formats.)la source
_12%
n'est pas exactement au milieu.Perl, 96 × ¾ = 72
C'est selon les règles traditionnelles du golf Perl (
#!
ligne non comptée, sauf pour les-
commutateurs et le cas échéant).la source
Ruby - score 93 (124 caractères)
Encore une autre implémentation rubis. Lit l'entrée de STDIN sous la forme décrite ci-dessus. Vous pouvez échanger des caractères
'#'
,' '
et'['
,']'
directement dans le code.la source
Python -
158155148143138 caractères (score de 103,5)Il pourrait être plus court de 30 caractères si l'entrée était séparée par une virgule.
la source
r=p.length()
?Q, 90 caractères, pas de bonus
usage
la source
Scala 149:
non golfé:
J'ai décidé, pour plus de lisibilité, vous avez vraiment besoin d'un espace autour du numéro de progression:
la source
C, 145 caractères, score = 108,75
la source
20 1
entrées, il générera une sortie de[#######100%######]
dans ce cas, il y a 7 objets tranchants à gauche du nombre et 5 objets tranchants à droite, donc le nombre imprimé n'est pas exactement dans le milieu.node.js: 135chars, * 0,75 pour les points bonus, donc 101,25chars.
non golfé:
production:
la source
PHP-128x0,75 => 96
C, 149 * 0,75 = 111,75
Production:
la source
Javascript
127125, pas de bonusUtilisation: modification
l=9
avec une autre longueur et / ou modificationp="0.99"
avec un autre pourcentageRemarque: terminez par zéro
0.X0
au lieu de0.X
la source
MATL , score 35,25 (47 * 0,75)
Essayez-le en ligne!
Explication:
la source
Excel VBA, 108 * 0,75 = 81 octets
Une fonction qui accepte une entrée à partir de
[A1]
et[B1]
et délivre en sortie à la consoleProduction
avec entrée
[A1]=25
et[B1]=.76
Avec entrée
[A1:B1].Resize(1,2)=Split("32 -.5")
Avec entrée
[A1:B1].Resize(1,2)=Split("40 10.01")
la source