Intro
Panel informasi ada di mana-mana. Ketika teknologi menjadi lebih murah, poster kertas diubah menjadi tanda-tanda bercahaya yang menunjukkan kata-kata yang muncul di satu sisi dan muncul di sisi lain, seperti yang ada di gambar:
Ketika salah satu dari tanda-tanda ini dimulai, biasanya mulai kosong dan teks pergi dari sisi kanan ke kiri, bergerak sampai menghilang.
Fungsinya untuk menyalakan dan mematikan bola lampu kecil (LED) untuk memberikan sensasi gerakan.
Jika alih-alih teks, kita hanya perlu menunjukkan angka, poster dapat menjadi kurang canggih menggunakan apa yang disebut penanda tujuh segmen seperti berikut:
Dalam hal ini setiap angka diwakili oleh kombinasi on / off hanya dari 7 segmen cahaya yang memungkinkan untuk mewakili semua angka:
Pertanyaan yang kami ajukan kepada diri sendiri adalah berapa banyak perubahan lampu (berapa banyak lampu menyala dan mati) yang harus dilakukan untuk melewati salah satu poster ini dengan jumlah tertentu?
Misalnya, untuk menampilkan 123 dalam tanda 3 digit yang dimulai dengan semua LED mati, kita akan memiliki:
Ini membuat total 42 perubahan lampu.
Tantangan
Diberi nomor non-negatif dan panjang tanda positif menghitung jumlah perubahan lampu.
Aturan
- Asumsikan input terdiri dari angka non-negatif (N> = 0) dan panjang tanda positif (M> 0)
- Asumsikan Panjang Masuk> = Panjang Nomor (M> = Digit (N))
Uji kasus
123, 3 => 42
45, 5 => 60
111, 3 => 12
98765, 10 => 220
0, 3 => 36
0,3 => 36
Jawaban:
Python 2 ,
129126119104 byteCobalah online!
Terima kasih banyak 15 byte dari ovs .
Seperti yang ditentukan, mengambil angka non-negatif dan panjang tanda positif, dan mengembalikan perubahan total.
sumber
'7367355777e0d93bf0fb'
\x7f
) antarap
dan{
.Jelly , 23 byte
Tautan diad yang menerima bilangan bulat untuk ditampilkan di sebelah kiri dan panjang tanda di sebelah kanan yang menghasilkan jumlah perubahan (juga berfungsi jika jumlah digit dalam bilangan bulat untuk ditampilkan lebih besar dari panjang tanda).
Cobalah online!
Bagaimana?
Selama seluruh pertunjukan, setiap 7-segmen tampilan (di beberapa titik) transisi dari kosong ke digit pertama, lalu ke yang kedua dan seterusnya, dan akhirnya dari yang terakhir menjadi kosong lagi. Transisi masing-masing biaya bitor XOR pada-segmen dari-digit dan ke-digit (di mana kosong adalah "digit" dengan 0-segmen). Saya mencuri segmen-on sebagai bilangan bulat dari revisi sebelumnya atas jawaban ETHproductions , tetapi permutasi dari 7 segmen akan melakukan hal yang sama.
sumber
JavaScript (Node.js) ,
104949393 byteDisimpan 1 byte berkat @Shaggy
Cobalah online!
sumber
0,3
harus memberi36
; kamu memberi0
. (Saya memiliki masalah yang sama - memperbaiki ini menghabiskan sekitar 10 byte grrrr ... :)).Japt,
3130 byteDiadaptasi dari larutan Jonathan's Jelly. Mengambil input dalam urutan terbalik dengan nomor yang akan ditampilkan sebagai array digit.
Cobalah
sumber
Bersih , 280 byte
Cobalah online!
Harus ada cara yang lebih pendek ..
sumber
Arang , 40 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Bekerja dengan mengonversi input ke nilai segmen biner, lalu menghitung jumlah perubahan di antara setiap karakter. Penjelasan:
sumber
JavaScript (Node.js) , 88 byte
Mengambil input sebagai
(integer)(width)
.Cobalah online!
Bagaimana?
Berkomentar
sumber