Я думаю, что большинство людей здесь знают, что такое 7-сегментный дисплей для цифр:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Мы можем определить 7-сегментную разницу (7SD) между двумя цифрами как количество сегментов, которые необходимо переключить для переключения с одного на другой. Например, 7SD между 1
и 2
равен 5 (три горизонтальных сегмента и два нижних вертикальных сегмента должны быть переключены), а 7SD между 6 и 8 равен 1 .
Кроме того, мы можем определить 7SD между двумя числами, чтобы быть суммой 7SD между их соответствующими цифрами. Если одно число длиннее другого, мы предполагаем, что они выровнены по правому краю, и добавим количество сегментов, необходимое для отображения дополнительных наиболее значимых цифр большего числа. В качестве примера рассмотрим 7SD между 12345
и 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Ваша задача - вычислить 7SD между n и n + 1 , учитывая n .
Для удобства приведена полная таблица 7SD между отдельными цифрами. Строка _
представляет пустую позицию.
_ 0 1 2 3 4 5 6 7 8 9
_ 0 6 2 5 5 4 5 6 3 7 6
0 6 0 4 3 3 4 3 2 3 1 2
1 2 4 0 5 3 2 5 6 1 5 4
2 5 3 5 0 2 5 4 3 4 2 3
3 5 3 3 2 0 3 2 3 2 2 1
4 4 4 2 5 3 0 3 4 3 3 2
5 5 3 5 4 2 3 0 1 4 2 1
6 6 2 6 3 3 4 1 0 5 1 2
7 3 3 1 4 2 3 4 5 0 4 3
8 7 1 5 2 2 3 2 1 4 0 1
9 6 2 4 3 1 2 1 2 3 1 0
вход
- Ввод - одно положительное целое число
n
. - Вы можете написать программу или функцию, используя ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции.
- Вы можете предположить, что входные данные по крайней мере на единицу меньше наибольшего числа, которое может быть представлено стандартным целочисленным типом вашего языка, при условии, что этот тип поддерживает как минимум значения до 127 включительно.
Выход
- Вы должны напечатать одно целое число, 7SD между
n
иn+1
. - Вы можете выводить через STDOUT (или ближайшую альтернативу), возвращаемое значение функции или аргумент функции (out).
счет
Применяются стандартные правила игры в гольф , самый короткий код (в байтах) выигрывает.
Тестовые случаи
По какой-то неясной причине эта последовательность еще не включена в OEIS, хотя есть тесно связанная последовательность A123587 . Вот первые 100 номеров (начиная с n = 1, 2, 3, ...
):
5, 2, 3, 3, 1, 5, 4, 1, 4, 4, 5, 2, 3, 3, 1, 5, 4, 1, 7, 4, 5, 2, 3, 3, 1,
5, 4, 1, 4, 4, 5, 2, 3, 3, 1, 5, 4, 1, 5, 4, 5, 2, 3, 3, 1, 5, 4, 1, 5, 4,
5, 2, 3, 3, 1, 5, 4, 1, 3, 4, 5, 2, 3, 3, 1, 5, 4, 1, 7, 4, 5, 2, 3, 3, 1,
5, 4, 1, 6, 4, 5, 2, 3, 3, 1, 5, 4, 1, 3, 4, 5, 2, 3, 3, 1, 5, 4, 1, 6, 4
Первый вход, для которого 7SD больше 9, 1999
должен дать 11. Вот еще несколько примеров:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1