Создайте двоичные часы BCD в ASCII. Как предполагается, он должен отображать время в шести столбцах точек:
(источник: Wikimedia Commons )
Каждый столбец представляет собой двоичную цифру, считывающую часы, минуты и секунды слева направо. Часы указаны в 24-часовом формате.
Время для отображения читается из командной строки или из стандартного ввода (в зависимости от того, что подходит лучше). Если пусто, вместо этого следует использовать текущее время.
Размер вывода здесь немного ограничен, и мы можем разместить только две строки текста. Таким образом, вы должны поместить точки только в две строки. Символы .
, :
и '
пригодится здесь.
вход
Время для отображения в формате ISO-8601, т.е. HH:MM:SS
без дробных секунд. Обязательный 24-часовой формат. Ввод может быть пустым, в этом случае будет использовано текущее время.
Вывод
Две строки с представляют двоичные часы BCD, как на рисунке выше. Длина каждой строки ровно шесть символов, и единственными допустимыми символами являются пробел, точка, двоеточие и апостроф.
победитель
Самый короткий код по количеству байтов выигрывает. В галстуке решение размещено с первыми победами.
Пример ввода 1
(Пусто)
Пример вывода 1
.
''. ::
Пример ввода 2
17:59:20
Пример вывода 2
..'
.:..'
Пример ввода 3
01:08:01
Пример вывода 3
'
. .
Рубин,
107 103 99 9490 символовОбратите внимание, что входные данные не должны содержать перенос строки, поэтому для тестирования решения используйте что-то вроде
echo -n "01:08:01" | ruby1.9 bcd.rb
.Чтобы проверить поведение по умолчанию, запустите его с помощью
ruby1.9 bcd.rb
и введите^D
(т. Е. Литеральный EOF).источник
Time.now.to_s[11,8]
.Windows PowerShell, 81
Так как я не создавал реализацию при написании задания, я чувствую, что с самого начала тоже могу его сыграть в гольф :-)
История:
[Math]::Floor
это слишком долго. Я ненавижу это.:
первая строка.58
вместо того, чтобы:
автоматически$_
приводить к целому числу - больше не нужно заключать в кавычки :-)-join
них больше не нужны.источник
Рубин - 124 символа
источник
C #
236 символов
Удобочитаемый:
источник
- 48
когда вы делаете% 4
, как48 % 4 == 0
c/4-12
короче, чем(c-48)/4
... :)Golfscript (+ Ruby), 63
Еще новичок в Golfscript. Не бей меня.
источник
""
приводят к ложному, так что вы можете удалить,\
.Perl (84)
источник
"\n$&"
на$/.$&
- обычный трюк с Perl-гольфом :)Python 3, 136 символов
источник
wc -c
. Хорошая работа, хотя. +1Python -
201172 символаисточник
t=raw_input().replace(':','')
/if not t:t=strftime('%H%M%S')
- спасает вас 5 символов :)Луа -
163160 символовисточник
VBA (Excel),
150148132 байтаИспользование Immediate Window и Cell в
[A1]
качестве входных данных.источник
If
оператор в[..]
нотацию и используя неразрывный пробел вместо обычного пробела в операторе split (Alt + 255), а затем с помощью добавления строк вместо конкатенации строк. Должно выглядетьa=Format([IF(A1,A1,NOW())],"hhmmss"):b=Split(" . ' :"):For c=1To Len(a):d=Mid(a,c,1):e=e+b(d\4):f=f+b(d Mod 4):Next:?e:?f
, где первый символ в разделенном утверждении - неразрывный пробелsplit
функции. Узнал новое снова XD Nice! И спасибо! : DСкала, 222:
источник
VimScript, 143 символа
источник