bem, é algo semelhante a esta pergunta, mas com algumas diferenças. você precisa escrever um programa para solicitar a largura da barra de progresso e quanto trabalho é feito. e desenhe uma barra de progresso com os seguintes recursos:
width indica quantos caracteres você precisa usar para desenhar a barra de progresso
o progresso é dado através de um valor de ponto flutuante entre 0..1.
o primeiro e o último caractere na barra de progresso devem ser diferentes de todos os outros caracteres, por exemplo "[" e "]"
seu programa deve usar dois caracteres diferentes para quanto progresso passou desde o início
você precisa escrever quanto trabalho é feito no meio da barra de progresso, usando um número decimal + o sinal "%".
ponto de bônus por lidar com insumos extremos, como 150% ou -5% do trabalho realizado.
número de pontuação de caracteres * (1 sem bônus ou bônus de largura de 0,75)
alguns exemplos de saídas válidas
79 0.15
[|||||||||||| 15% ]
25 0.76
[##########76%#####.....]
39 -0.12
[ -12% ]
25 7.6
[##########760%#########]
fonte
Respostas:
PHP 84 x 0,75 = 63
Edit: Uma versão menos 'bonita', mas deve ser válida de acordo com as regras:
Resultado:
Original (98 x 0,75 = 73,5)
Resultado:
fonte
J, 78 × 0,75 = 58,5
(Números negativos em J são prefixados por
_
, não-
. Felizmente, o diádico".
pode analisar os dois formatos.)fonte
_12%
não está exatamente no meio.Perl, 96 × ¾ = 72
Isso ocorre pelas regras tradicionais de golfe Perl (
#!
linha não contada, exceto pelas-
opções e, se houver).fonte
Ruby - pontuação 93 (124 caracteres)
Mais uma implementação em ruby. Lê a entrada de STDIN no formato descrito acima. Você pode trocar personagens
'#'
,' '
e'['
,']'
diretamente no código.fonte
Python -
158155148143 143138 caracteres (pontuação de 103,5)Pode ser 30 caracteres menor se a entrada for separada por vírgula.
fonte
r=p.length()
?Q, 90 caracteres, sem bônus
uso
fonte
Scala 149:
ungolfed:
Decidi, para facilitar a leitura, você realmente precisa de um espaço em torno do número de progresso:
fonte
C, 145 caracteres, pontuação = 108,75
fonte
20 1
entradas que gerarão saída.[#######100%######]
Nesse caso, existem 7 sharps à esquerda do número e 5 sharps à direita, portanto o número impresso não está exatamente na o meio.node.js: 135chars, * 0,75 para pontos de bônus, portanto, 101,25chars.
ungolfed:
resultado:
fonte
PHP-128x0.75 => 96
C, 149 * 0,75 = 111,75
Resultado:
fonte
Javascript
127125, sem bônusUso: Alterar
l=9
com outro comprimento e / ou alterarp="0.99"
com outro percentualNota: termine com zero em
0.X0
vez de0.X
fonte
MATL , pontuação 35,25 (47 * 0,75)
Experimente online!
Explicação:
fonte
Excel VBA, 108 * .75 = 81 bytes
Uma função que recebe entrada de
[A1]
e[B1]
e saídas para o consoleResultado
com entrada
[A1]=25
e[B1]=.76
Com entrada
[A1:B1].Resize(1,2)=Split("32 -.5")
Com entrada
[A1:B1].Resize(1,2)=Split("40 10.01")
fonte