ну, это что-то похожее на этот вопрос, но с небольшими отличиями. Вы должны написать программу, чтобы узнать ширину индикатора выполнения и объем работы. а затем нарисуйте индикатор выполнения со следующими функциями:
ширина указывает, сколько символов вы должны использовать, чтобы нарисовать индикатор
прогресс дается через значение с плавающей запятой между 0..1.
первый и последний символ в строке прогресса должен отличаться от всех других символов, например "[" и "]"
ваша программа должна использовать два разных символа для того, сколько прогресса прошло с момента запуска
Вы должны написать, сколько работы сделано прямо в середине индикатора выполнения, используя десятичное число + знак «%».
бонусный балл за обработку экстремальных вложений, таких как 150% или -5% выполненной работы.
скоринг количество символов * (1 без бонуса или 0,75 ширины бонуса)
несколько примеров действительных результатов
79 0.15
[|||||||||||| 15% ]
25 0.76
[##########76%#####.....]
39 -0.12
[ -12% ]
25 7.6
[##########760%#########]
источник
Ответы:
PHP 84 х 0,75 = 63
Изменить: Менее «красивая» версия, но она должна быть действительной в соответствии с правилами:
Выход:
Оригинал (98 х 0,75 = 73,5)
Выход:
источник
J 78 × 0,75 = 58,5
(Отрицательные числа в J имеют префикс
_
, а не-
. К счастью, двоичный".
может анализировать оба формата.)источник
_12%
не точно посередине.Perl, 96 × ¾ = 72
Это по традиционным правилам гольфа Perl (
#!
линия не учитывается, за исключением-
переключателей и, если они есть).источник
Рубин - оценка 93 (124 символа)
Еще одна рубиновая реализация. Читает ввод из STDIN в форме, описанной выше. Вы можете обменять символы
'#'
,' '
и'['
,']'
непосредственно в коде.источник
Python -
158155148143138 символов (оценка 103,5)Это может быть на 30 символов короче, если ввод разделен запятой.
источник
r=p.length()
?Q, 90 символов, без бонуса
использование
источник
Scala 149:
ungolfed:
Я решил, что для удобства чтения вам действительно нужно пространство вокруг числа прогресса:
источник
C, 145 знаков, оценка = 108,75
источник
20 1
входными данными, из которых она будет генерировать вывод,[#######100%######]
в этом случае от числа осталось 7 острых, а справа 5 острых, поэтому напечатанное число не совсем точно середина.node.js: 135 символов, * 0,75 для бонусных очков, поэтому 101,25 символов.
ungolfed:
выход:
источник
PHP-128x0.75 => 96
С, 149 * 0,75 = 111,75
Выход:
источник
JavaScript
127125, без бонусаИспользование: Изменить
l=9
с другой длиной и / или изменитьp="0.99"
с другим процентомПримечание: конец с нуля
0.X0
вместо0.X
источник
МАТЛ , оценка 35,25 (47 * 0,75)
Попробуйте онлайн!
Объяснение:
источник
Excel VBA, 108 * .75 = 81 байт
Функция, которая принимает данные от
[A1]
и[B1]
и выводит на консольВыход
с входом
[A1]=25
и[B1]=.76
С входом
[A1:B1].Resize(1,2)=Split("32 -.5")
С входом
[A1:B1].Resize(1,2)=Split("40 10.01")
источник