Buat jam biner BCD di ASCII. Seperti tersirat, itu akan menampilkan waktu dalam enam kolom titik:
(sumber: Wikimedia Commons )
Setiap kolom adalah digit kode biner, jam baca, menit, dan detik dari kiri ke kanan. Jam diberikan dalam format 24 jam.
Waktu untuk menampilkan dibaca dari baris perintah atau dari stdin (mana yang lebih baik). Jika kosong, waktu saat ini seharusnya digunakan.
Ukuran output sedikit dibatasi di sini dan kami hanya dapat memuat dua baris teks. Jadi, Anda diminta untuk menempatkan titik-titik hanya dalam dua garis. Karakter .
, :
dan '
berguna di sini.
Memasukkan
Waktu untuk menampilkan dalam format ISO-8601, yaitu HH:MM:SS
tanpa pecahan detik. Wajib format 24 jam. Input dapat kosong dalam hal ini waktu saat ini akan digunakan.
Keluaran
Dua baris dengan mewakili jam biner BCD seperti pada gambar di atas. Setiap baris tepat enam karakter panjangnya dan satu-satunya karakter yang diizinkan adalah spasi, titik, titik dua dan tanda kutip.
Pemenang
Kode terpendek dengan jumlah byte menang. Dalam seri, solusi diposting kemenangan pertama.
Masukan sampel 1
(kosong)
Output sampel 1
.
''. ::
Masukan sampel 2
17:59:20
Output sampel 2
..'
.:..'
Masukan sampel 3
01:08:01
Keluaran sampel 3
'
. .
Rubi,
107 103 99 9490 karakterPerhatikan bahwa input tidak boleh mengandung linebreak, jadi untuk menguji solusinya gunakan sesuatu seperti
echo -n "01:08:01" | ruby1.9 bcd.rb
.Untuk menguji perilaku default, jalankan dengan
ruby1.9 bcd.rb
dan masukkan^D
(yaitu EOF literal).sumber
Time.now.to_s[11,8]
.Windows PowerShell, 81
Karena saya tidak membuat implementasi saat menulis tugas, saya merasa diri saya memenuhi syarat untuk golf sejak awal, juga :-)
Sejarah:
[Math]::Floor
waaaayy terlalu lama. Aku benci itu.:
untuk baris pertama.58
alih-alih:
auto-cast untuk integer juga - tidak perlu lagi menyertakan$_
tanda kutip :-)-join
tidak lagi diperlukan.sumber
Ruby - 124 karakter
sumber
C #
236 karakter
Dapat dibaca:
sumber
- 48
saat Anda melakukannya% 4
, karena48 % 4 == 0
c/4-12
lebih pendek dari(c-48)/4
... :)Golfscript (+ Ruby), 63
Masih pemula dengan Golfscript. Jangan pukul aku.
sumber
""
dipaksa ke false sehingga Anda dapat menghapus,\
.Perl (84)
sumber
"\n$&"
ke$/.$&
- trik umum Perl-golf :)Python 3, 136 karakter
sumber
wc -c
. Kerja bagus ya. +1Python -
201172 karaktersumber
t=raw_input().replace(':','')
/if not t:t=strftime('%H%M%S')
- menghemat 5 karakter :)Lua -
163160 Karaktersumber
VBA (Excel),
150148132 byteMenggunakan Jendela dan Sel Segera
[A1]
sebagai input.sumber
If
pernyataan ke dalam[..]
notasi, dan menggunakan ruang non-breaking alih-alih ruang biasa dalam pernyataan split (Alt + 255), dan kemudian dengan menggunakan penambahan string alih-alih penggabungan string. Seharusnya terlihat sepertia=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
, di mana karakter pertama dalam pernyataan split adalah ruang tanpa hentisplit
fungsi. Belajar hal baru lagi XD Bagus! Dan terimakasih! : DScala, 222:
sumber
VimScript, 143 karakter
sumber