Creo que la mayoría de las personas de por aquí saben lo que es una pantalla de 7 segmentos para dígitos:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Podemos definir la diferencia de 7 segmentos (7SD) entre dos dígitos para que sea el número de segmentos que deben alternarse para cambiar de uno a otro. Por ejemplo, el 7SD entre 1
y 2
es 5 (los tres segmentos horizontales y los dos segmentos verticales inferiores deben alternarse), y el 7SD entre 6 y 8 es 1 .
Además, podemos definir el 7SD entre dos números para que sea la suma de 7SD entre sus dígitos correspondientes. Si un número es más largo que el otro, asumimos que están alineados a la derecha y agregamos el número de segmentos necesarios para mostrar los dígitos adicionales más significativos del número mayor. Como ejemplo, considere el 7SD entre 12345
y 549
:
x: 1 2 3 4 5
y: 5 4 9
7SD: 2+5+2+0+1 = 10
Su tarea es calcular 7SD entre n y n + 1 , dado n .
Para mayor comodidad, aquí está la tabla completa de 7SD entre dígitos individuales. La fila _
representa una posición vacía.
_ 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
Entrada
- La entrada es un solo entero positivo
n
. - Puede escribir un programa o función, tomando datos a través de STDIN (o la alternativa más cercana), argumento de línea de comandos o argumento de función.
- Puede suponer que la entrada es como máximo uno menos que el número más grande que puede ser representado por el tipo entero estándar de su idioma, siempre que ese tipo admita al menos valores hasta 127 inclusive.
Salida
- Debe imprimir un solo entero, el 7SD entre
n
yn+1
. - Puede enviar a través de STDOUT (o la alternativa más cercana), el valor de retorno de la función o el argumento de la función (fuera)
Tanteo
Se aplican las reglas estándar de código de golf , gana el código más corto (en bytes).
Casos de prueba
Por alguna oscura razón, esta secuencia aún no está en OEIS, aunque existe la secuencia estrechamente relacionada A123587 . Aquí están los primeros 100 números (comenzando con 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
La primera entrada para la cual el 7SD es mayor que 9 es la 1999
que debería producir 11. Aquí hay algunos otros ejemplos más grandes:
n 7SD
1999 11
12345 1
999999 14
5699999 15
8765210248 1