вступление
Информационные панели есть везде. Когда технология стала дешевле, бумажные плакаты превратились в светящиеся знаки, которые показывают слова, которые появляются на одной стороне и выходят на другой, как показано на рисунке:
Когда один из этих знаков запускается, он обычно начинается пустым, и текст уходит с правой стороны влево, перемещаясь, пока не исчезнет.
Его функциональность заключается в том, чтобы включать и выключать маленькие лампочки (светодиоды), чтобы дать ощущение движения.
Если вместо текста нам нужно показывать только цифры, постер может быть гораздо менее изощренным с использованием так называемых семисегментных маркеров, таких как:
В этом случае каждое число представлено комбинацией вкл / выкл только 7 легких сегментов, которые позволяют представлять все числа:
Вопрос, который мы задаем себе, состоит в том, сколько изменений освещения (сколько включений и выключений) необходимо сделать, чтобы пройти через один из этих плакатов определенное число?
Например, чтобы показать 123 в 3-значном знаке, который начинается со всех выключенных светодиодов, мы будем иметь:
Это делает в общей сложности 42 смены огней.
Вызов
С учетом неотрицательного числа и длины положительного знака рассчитайте количество изменений освещения.
правила
- Предположим, что входные данные состоят из неотрицательного числа (N> = 0) и длины положительного знака (M> 0)
- Предположим, длина знака> = длина номера (M> = цифры (N))
Контрольные примеры
123, 3 => 42
45, 5 => 60
111, 3 => 12
98765, 10 => 220
0, 3 => 36
0,3 => 36
Ответы:
Python 2 ,
129126119104 байтаПопробуйте онлайн!
Спасибо за большие 15 байтов из овсов .
Как указано, принимает неотрицательное число и длину положительного знака и возвращает общее количество изменений.
источник
'7367355777e0d93bf0fb'
\x7f
) междуp
и{
.Желе , 23 байта
Двоичная ссылка, принимающая целое число для отображения слева и длину знака справа, которая выдает количество изменений (также работает, если число цифр в отображаемом целом числе больше длины знака).
Попробуйте онлайн!
Как?
В течение всего шоу каждый 7-сегментный дисплей (в какой-то момент) переходит от пустого к первому разряду, затем ко второму и т. Д. И, наконец, из последнего к пустому снова. Каждый из переходов стоит поразрядное XOR включенных сегментов от цифры до цифры (где пусто «цифра» с 0 сегментами). Я украл on-сегменты как целые числа из предыдущей версии ответа ETHproductions , но любая перестановка из 7 сегментов тоже подойдет .
источник
JavaScript (Node.js) ,
104949393 байтаСохранено 1 байт благодаря @Shaggy
Попробуйте онлайн!
источник
0,3
следует дать36
; Вы даете0
. (У меня была такая же проблема - исправление этого стоило мне около 10 байт грррр ... :)).Japt,
3130 байтАдаптировано из решения Jonathan's Jelly. Принимает ввод в обратном порядке с номером, отображаемым в виде массива цифр.
Попытайся
источник
Чистый , 280 байт
Попробуйте онлайн!
Там должен быть более короткий путь ..
источник
Древесный уголь , 40 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Работает путем преобразования входных данных в значения двоичного сегмента, а затем подсчитывает количество изменений между каждым символом. Объяснение:
источник
JavaScript (Node.js) , 88 байт
Принимает вход как
(integer)(width)
.Попробуйте онлайн!
Как?
комментарии
источник